在Javascript上拼接空数组
我正在尝试使用在Javascript上拼接空数组,javascript,csv,Javascript,Csv,我正在尝试使用splice()函数删除空数组元素(从csv文件中) 数组元素存储在csv中。数据: csv.data.forEach(function(item,index) { if (item.length < 2) { // don't want anything less than two csv.data.splice(index,1); } }); 期望 [ [ "1212", "okay", "" ], ]
splice()
函数删除空数组元素(从csv文件中)
数组元素存储在csv中。数据:
csv.data.forEach(function(item,index) {
if (item.length < 2) { // don't want anything less than two
csv.data.splice(index,1);
}
});
期望
[
[
"1212",
"okay",
""
],
]
在循环中使用拼接不是一个好主意。您可能会错过一些索引。 您可以使用
filter
函数代替forEach
var csv={data:[[“1212”、“好的”、“好的”、“好的”、“坏的”、“坏的”、“坏的”、“坏的”、“坏的”、“坏的”、“坏的”、“坏的”、“坏的”];
csv.data=csv.data.filter(items=>items.length>1);
console.log(csv.data)代码>您可以从末端和拼接处迭代数组,而不会与索引冲突
var数组=[[“1212”、“好的”、“好的”、“好的”、“坏的”、“坏的”、“坏的”、“坏的”、“坏的”、“坏的”、“坏的”、“坏的”,
i=数组长度;
而(我--){
if(数组[i]。长度<2){
阵列拼接(i,1);
}
}
console.log(数组)代码>如果您还想从顶部数组中删除空元素,可以执行另一个筛选
例如
const a=[[“1212”,“好的”,“好的”,“好的”,“好的”,“好的”,“好的”,“好的”,“好的”,好的,好的,好的,好的,好的,好的;
常量ret1=a.map((b)=>b.filter((f)=>f));
console.log(ret1);
//如果您还想从顶部数组中删除空元素。
常量ret2=ret1.filter((f)=>f.length);
console.log(ret2)代码>拼接时进行迭代。。。不是个好主意。可能是@NinaScholz的复制品。绝对正确。在forEach中对数组元素的位置进行任何类型的修改,无论是移动、添加还是删除,都可能会产生不希望出现的后果。您最好使用for
循环并添加逻辑来跟踪您所在的位置(但这只是理解逻辑及其中断原因的有趣方式)。但是,这也不是最好的解决方案。我只是想重申为什么不建议在forEach中进行这些修改。csv.data
的内容是什么?该更新没有太大帮助,现在看起来像一个数组数组。您可以尝试执行console.log(JSON.stringify(csv.data,null,”)
)并复制帖子。它将返回一个数组,其中包含相同的数据,但经过过滤。该数组位于csv.data
中。请更新问题并添加一个csv.data
示例,因为此答案100%正确,对于目前的问题。我已经添加了数组和代码段,以显示它完全按照所描述的方式工作。@Archer谢谢。@zuif-你错了100%。这段代码可以工作,如果你只需点击一个简单的按钮,你就会看到它。如果这个答案在任何方面都不正确,那是因为你没有描述问题。感谢尼娜·斯科尔斯的帮助!
[
[
"1212",
"okay",
""
],
]