首页 > 解决方案 > 如何使用过滤器方法从javascript中另一个数组的值转换数组

问题描述

我有这样的数组

const data: { "status" : ["aa","bb","cc","dd"],
                       ["ee","ff","gg","hh"],
                       ["ii","jj","kk","ll"] } 
const value=2;

和另一个这样的数组

const array2: { "name":"status", "data": ["cc","gg"] }

我想将array1转换成这个

const data: "status" : ["aa","bb","cc","dd"],
                      ["ee","ff","gg","hh"] 
  

这里的值是我从第二个数组中获取我必须过滤的数据的索引。在array1中,数据具有键值对,其中状态是键,值是数组

我使用过滤方法。但我无法通过状态来过滤数组。

PS提前谢谢你

标签: javascriptarraysreactjsfilter

解决方案


如果这是您所要求的,我不肯定,但似乎您只想将数组修剪data.status为仅包含array2.data.

要检查这一点,在您的过滤器中,您可以使用some数组方法并检查每个元素是否包含在array2.data.

const data = {
  "status": [
    ["aa", "bb", "cc", "dd"],
    ["ee", "ff", "gg", "hh"],
    ["ii", "jj", "kk", "ll"]
  ]
}

const array2 = {
  "name": "status",
  "data": ["cc", "gg"]
}

console.log('Before')
console.log(data.status)

data.status = data.status.filter(row => row.some(elem => array2.data.includes(elem)))

console.log('After')
console.log(data.status)


推荐阅读