我想从
获取数字var arr = [1,[2],[[3]],[[[4]]]];
使用JavaScript / jQuery。
可能更多的是在系列中。
答案 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]