巧用 concat 和 apply 將對象或二維數組轉化爲一維數組

場景:

在用node寫接口的時候,作了 SQL 防注入,而且封裝了一個能返回 修改數據庫sql語句 的方法,因爲使用了佔位符,因此須要將傳入的對象按照 key-value 的方式一個個的對應上去。node

實現:

先介紹一下這兩個方法sql

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"]
相關文章
相關標籤/搜索