首页 > 解决方案 > JavaScript - 过滤字符串数组

问题描述

我有一组从 csv 文件返回给我的数据数组。我试图根据数组中的标题过滤掉数组的每个索引。例如:

如果数组的索引具有名称“零售”,则返回包含一些值的整个索引。

这是我的数组:

[     
    ​​[
     "Retail",
    ​​
     "22,477",
    ​​
     "24,549",
    ​​
     "19,580",
    ​​
     "15,358",
    ​​],       ​    ​
     [ 
      "Online", 

      "8,653", 

      "7,586",

      "2,432",

      "4,321"
    ],

     [ 
         "In Store", 

          "2,532", 

          "2,836", 

          "5,632",

          "7,325" 
     ]
]

我尝试了这两种不同的方式,并且都返回了一个 0 数组:

filtArr = dataList.filter(name => name.includes('Retail')) //expecting the array length 5 with "Retail" and it's values

尝试 2

 filtArr = dataList.filter(function (name) {
    return (name === "Retail")
})

预期回报为:console.log(filtArr) // [ 0. "Retail", 1. "22,477", 2. "24,549", 3. "19,580", 4. "15,358"

标签: javascriptarraysfilter

解决方案


检查数组是否包含某些项目的一个好方法是使用 indexOf 方法对其进行测试。如果未找到该项目或它的索引,它将返回 -1。

您可以这样做来存储所有包含“零售”的数组:

let retailArrays = [];
arrayOfArrays.forEach( 
    array => {
        if( array.indexOf('Retail') !== -1) {
        retailArrays.push(array);
        };
    }
)

推荐阅读