常用代码片段

356 阅读1分钟

二维数组转换为一维数组

1.使用: [].concat.apply([],arr)

2.使用: Array.prototype.concat.apply([], arr)

const arr=[[1,2,3],[3,4],[5]];
[].concat.apply([],arr)
Array.prototype.concat.apply([], arr);

3.使用: reduce +concat

var flattened = [[0, 1], [2, 3], [4, 5]].reduce(
  function(a, b) {
    return a.concat(b);
  },
  []
);
// flattened is [0, 1, 2, 3, 4, 5]

对象数组排序

1.使用: sort结合以下片段代码

/**
 * 规格选择回调
 * @method compare
 * @param {String} properity 当前需要按照哪个属性进行排序
 * @param {String} sortType 当前需要排序的类型,如:升序up||降序down
 */
compare(properity, sortType){
    return functon(a,b) {
        const value1 = a[properity]
        const value2 = b[properity]
        if(sortType && sortType === 'down') {
            return value2-value1
        } else {
            return value1-value2
        }
       
    }
}

例如:a是根据b的value属性来排序

const a = b.sort(compare('value'))

...

类数组或伪数组使用数组对象

1.使用: [].slice.call(arrLike)

2.使用: Array.prototype.slice.call(arrLike)