在Javascript上拼接空数组

Dhi*_*raj 0 javascript csv

我试图通过使用该函数删除空数组元素(从csv文件)splice().

数组元素存储在csv.data:

csv.data.forEach(function(item,index) {
    if (item.length < 2) { // don't want anything less than two
        csv.data.splice(index,1); 
        }
    });
Run Code Online (Sandbox Code Playgroud)

这样可行,但它仍然在csv文件中返回两个空数组(行),最初有六个空行,但它会跳过两个空行.

我做错了吗?

这是 csv.data

[
 [
  "1212",
  "okay",
  ""
 ],
 [
  ""
 ],
 [
  ""
 ],
 [
  ""
 ],
 [
  ""
 ],
 [
  ""
 ],
 [
  ""
 ]
]
Run Code Online (Sandbox Code Playgroud)

预期

[
 [
  "1212",
  "okay",
  ""
 ],
]
Run Code Online (Sandbox Code Playgroud)

Sur*_*yan 7

在循环中使用拼接不是一个好主意.你可以错过一些索引.您可以使用filter功能代替forEach

var csv = { data: [["1212", "okay", ""], [""], [""], [""], [""], [""], [""]] };

csv.data = csv.data.filter(items => items.length > 1);

console.log(csv.data);
Run Code Online (Sandbox Code Playgroud)

  • 它将返回一个具有相同数据但已过滤的数组,该数组位于`csv.data`中. (2认同)
  • 请更新问题并添加一个`csv.data`的示例,因为这个答案100%正确,对于目前的问题. (2认同)