获取多维数组的值

时间:2017-04-11 17:32:24

标签: javascript jquery arrays

我想从

获取数字
var arr = [1,[2],[[3]],[[[4]]]];

使用JavaScript / jQuery。

可能更多的是在系列中。

2 个答案:

答案 0 :(得分:0)

您正在寻找Array.prototype.reduce()

例如:

var arr = [1,[2],[[3]],[[[4]]]];

const flatten = arr => arr.reduce(
  (acc, val) => acc.concat(
    Array.isArray(val) ? flatten(val) : val
  ),
  []
);

console.log(flatten(arr));

答案 1 :(得分:0)

实际上,如果您只想获取数字,您只需将数组转换为字符串,然后使用简单的正则表达式提取所有数字:



console.log([1,[2],[[3]],[[[4]]]].toString().match(/\d+/g)); // ["1","2","3","4"]




如果结果必须是数字数组(而不是字符串),则可以使用Array#map来运行转换(e => +e)。



console.log([1,[2],[[3]],[[[4]]]].toString().match(/\d+/g).map(e => +e)); // [1,2,3,4]