巧用 concat 和 apply 将对象或二维数组转化为一维数组

场景:

在用node写接口的时候,做了 SQL 防注入,并且封装了一个能返回 修改数据库sql语句 的方法,由于使用了占位符,所以需要将传入的对象按照 key-value 的方式一个个的对应上去。

实现:

先介绍一下这两个方法

concat 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。 如果该方法的参数是一个元素,该元素会被直接插入到新数组中;如果参数是一个数组,该数组的各个元素将被插入到新数组中。

apply 方法会引用调用 apply 的函数,并指向第一个参数,apply方法的第二个参数(一个数组,或类数组的对象)会作为被调用对象的arguments值,也就是说第二个参数的各个元素将会依次成为被调用函数的参数。

const obj = {
    a: 'aaa',
    b: 'bbb',
}
const d_arr = Object.entries(obj)  // [["a", "aaa"], ["b", "bbb"]]
const arr = Array.prototype.concat.apply([], d_arr) // ["a", "aaa", "b", "bbb"]

你可能感兴趣的:(prototype,apply,concat,二维数组)