大连房地产网站建设,一般做网站哪家好,wordpress禁止评论,西地那非使用三大忌数组扁平化#xff0c;就是将多维数组碾平为一维数组#xff0c;方便使用。 一#xff1a;例如#xff0c;一个二维数组 var arr [a, [b, 2], [c, 3, x]]#xff0c;将其扁平化#xff1a; 1. 通过 apply 借用数组的 concat 方法#xff1a; [].concat.apply([], arr)…数组扁平化就是将多维数组碾平为一维数组方便使用。 一例如一个二维数组 var arr [a, [b, 2], [c, 3, x]]将其扁平化 1. 通过 apply 借用数组的 concat 方法 [].concat.apply([], arr); 结果如下 jQuery 中的 map 方法就用到了这个技巧。 但如果直接调用 concat 方法[].concat(arr)就没有扁平化效果。 2. 扩展运算符... [].concat(...arr) 3. reduceES5新增的数组方法 [[a], [b, 2], [c, 3, x]].reduce((a, b) a.concat(b), []); 二对于三维及以上的数组 1. 数组每一项都是简单类型如数字 var arr [[1], [[2, 3], [4]], 5, 6];arr.toString().split(,).map(item item); 2. 递归 1 var flatten function(arr) {2 var isArray function(arr) {3 return Array.isArray(arr) || Object.prototype.toString.call(arr) [object Array];4 },5 ret [],6 item;7 8 if (!isArray(arr)) {9 return;
10 }
11
12 for (var i 0; i arr.length; i) {
13 item arr[i];
14 if (isArray(item)) {
15 ret ret.concat(flatten(item));
16 } else {
17 ret.push(item);
18 }
19 }
20
21 return ret;
22 };
23
24 flatten( [ a, [[[[b, 2]]]], [c, [3, x]] ] ); 该方法对任意维数组都有效。 三flat ES6方法 flat(Infinity) 可将任意维数组转成一维数组转载于:https://www.cnblogs.com/caihg/p/6519422.html