在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",
  ""
 ],
]