JavaScript:如何删除外部数组中的所有方括号? [复制]
Posted
技术标签:
【中文标题】JavaScript:如何删除外部数组中的所有方括号? [复制]【英文标题】:JavaScript: How to remove all the square brackets inside the outer array? [duplicate] 【发布时间】:2016-03-17 13:07:58 【问题描述】: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
,这就是我想要得到的数字。我几天前才开始学习编程,所以我不知道该怎么做。提前谢谢你。
【问题讨论】:
创建一个数组并将所有元素添加到其中,通过使用for循环遍历原始数组,或使用arrayX.join().split(',')
但这里所有值都转换为字符串,但length
会根据问题,为 8 岁。
您所追求的概念称为“扁平化”数组。
【参考方案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】:无需循环
arrayX = [].concat.apply([], arrayX);
【讨论】:
只有在数组没有嵌套的情况下才有效。 @NinaScholz 适用于 OP 案例。我喜欢人们添加在 OP 案例中无关紧要的新要求。【参考方案3】:我自己是 concat 方法的粉丝
function concatArray()
var arrayX = [
["fire", "lightning"],
[3, "ice"],
[85],
["wind", "earth", 0]
];
arrayX = [].concat.apply([], arrayX);
console.log(arrayX.length);
concatArray();
【讨论】:
我的回答错了吗? 你看起来很开心,在我的经验中没有人喜欢这个,避免'fan','excelent','super'关键字以上是关于JavaScript:如何删除外部数组中的所有方括号? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
java怎么获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名