Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数组数据类型操作_Javascript_Arrays_Ecmascript 6 - Fatal编程技术网

Javascript 数组数据类型操作

Javascript 数组数据类型操作,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,我有一个对象数组。 看起来有点像 我需要遍历数组中的每个对象。问题是这将需要一个嵌套的for循环,这并不坏,但我想知道当我将扩展操作符放入原始数组时,是否有任何方法可以使用它。 outerArray.push(…innerArray),类似的东西。这不起作用,但是否存在类似的情况?您可以使用它将嵌套数组转换为扁平数组 var arr1 = [1, 2, [3, 4]]; arr1.flat(); // [1, 2, 3, 4] var arr2 = [1, 2, [3, 4, [5, 6]

我有一个对象数组。 看起来有点像

我需要遍历数组中的每个对象。问题是这将需要一个嵌套的for循环
,这并不坏,但我想知道当我将扩展操作符放入原始数组时,是否有任何方法可以使用它。
outerArray.push(…innerArray)
,类似的东西。这不起作用,但是否存在类似的情况?

您可以使用它将嵌套数组转换为扁平数组

var arr1 = [1, 2, [3, 4]];
arr1.flat(); 
// [1, 2, 3, 4]

var arr2 = [1, 2, [3, 4, [5, 6]]];
arr2.flat();
// [1, 2, 3, 4, [5, 6]]

var arr3 = [1, 2, [3, 4, [5, 6]]];
arr3.flat(2);
// [1, 2, 3, 4, 5, 6]
对于较旧的浏览器,可以参考

将嵌套数组转换为扁平数组

var arr1 = [1, 2, [3, 4]];
arr1.flat(); 
// [1, 2, 3, 4]

var arr2 = [1, 2, [3, 4, [5, 6]]];
arr2.flat();
// [1, 2, 3, 4, [5, 6]]

var arr3 = [1, 2, [3, 4, [5, 6]]];
arr3.flat(2);
// [1, 2, 3, 4, 5, 6]

对于较旧的浏览器,您可以参考

,只需在此处添加另一个不需要传入深度的选项:

const deepFlatten = arr =>
  [].concat(...arr.map(v => (Array.isArray(v) ? deepFlatten(v) : v)))

使用
deepflant(outerArray)
调用,只需在此处添加另一个不需要传入深度的选项:

const deepFlatten = arr =>
  [].concat(...arr.map(v => (Array.isArray(v) ? deepFlatten(v) : v)))

使用
deepflant(outerArray)

使用
[]呼叫。concat(…outerArray)
@MohammadUsman那是一个浅层公寓
[]concat(…outerArray)
@MohammadUsman那是一个浅层公寓我可能会这样做的,干净、简单、直截了当。回答得很好!我可能会坚持使用嵌套循环,但这是可行的。我可能会这样做,干净、简单&直截了当。答案很好!我可能会坚持使用嵌套循环,但这是可行的。