JavaScript:如何删除外部数组中的所有方括号?

时间:2015-12-11 15:09:34

标签: javascript arrays

var arrayX = [ ["fire", "lightning"], [3, "ice"], [85], ["wind", "earth", 0] ];

在上面的示例中,arrayX由四个元素组成,每个元素也是一个数组。现在,arrayX.length等于4

我想知道是否可以删除里面的所有四对方括号,只留下最外面的括号,这样计算机现在可以计算arrayX中所有单个元素的总数。我的意思是,像这样:

var arrayX = ["fire", "lightning", 3, "ice", 85, "wind", "earth", 0];

现在,arrayX.length返回8,这是我想要获得的数字。几天前我开始学习编程,所以我不确定如何解决这个问题。提前谢谢。

3 个答案:

答案 0 :(得分:7)

无需循环

arrayX = [].concat.apply([], arrayX);

答案 1 :(得分:1)

使用Array.prototype.reduce()

var flattened = [ ["fire", "lightning"], [3, "ice"], [85], ["wind", "earth", 0] ].reduce(function(a, b) {
  return a.concat(b);
}, []);

docs here

答案 2 :(得分:-1)

我自己是concat方法的粉丝

function concatArray() {
var arrayX = [ ["fire", "lightning"], [3, "ice"], [85], ["wind", "earth", 0] ];
arrayX = [].concat.apply([], arrayX);
console.log(arrayX.length);
}

concatArray();