我有这样的数据
var data = [[1, 2, 3, 4], [5, 6, 7, 8]];
我希望使用1, 2, 3, 4, 5, 6 ,7 ,8
循环来获取该数组中的每个数据,例如for
,但我无法获取每个数据。
这是我使用循环获取每个数据的代码
var each = [];
for (var i = 0; i < data.length; i++) {
each.push(data[i]);
for (var i = 0; i < each.length; i++) {
console.log(each[i]);
};
};
在我的想法中,我可以获得每个数组数据,如1,2,3 etc
但循环结果为[1,2,3,4]
。这是我的数组中的第一个数据
请有人告诉我从该阵列获取每个数据的最佳方法
答案 0 :(得分:1)
您可以使用Array#reduce
和Array#concat
来获得平面阵列。
var data = [[1, 2, 3, 4], [5, 6, 7, 8]],
each = data.reduce(function (r, a) { return r.concat(a); }, []);
console.log(each);
答案 1 :(得分:0)
这样做:
data = [[1, 2, 3, 4], [5, 6, 7, 8]];
var joined = [].concat.apply([], data).join(",");
console.log(joined);
&#13;
答案 2 :(得分:0)
另一种选择是使用带有apply
的concatvar data = [[1, 2, 3, 4], [5, 6, 7, 8]];
var flat = [].concat.apply([],data);
console.log(flat);
答案 3 :(得分:0)
更合适的方法是使用Array#reduce
,但您也可以使用以下更改来使用代码:
var each = [];
for (var i = 0; i < data.length; i++) {
each = each.concat(data[i]);
for (var j = 0; j < each.length; j++) {
console.log(each[j]);
}
}
答案 4 :(得分:0)
我想最简单的方法是
var data = [[1, 2, 3, 4], [5, 6, 7, 8]],
z = [].concat(...data); // [1,2,3,4,5,6,7,8];