从数组打字稿中删除项目

时间:2021-06-17 05:27:20

标签: javascript arrays angular typescript enums

我陷入了困境。 我有一个数组

arr: [
              {
                "a": "1"
          },
          {
            "b": "4"
          },
          {
            "c": "6"
          },
          {
            "d": "9"
          }
]

和一个数组

[a,c]

我希望我的输出是一个数组,其中每个数组只有 a 和 c。有人可以建议吗。

所需的输出

arr: [
                {
                  "a": "1"
            },
            {
              "c": "6"
            }
]

2 个答案:

答案 0 :(得分:2)

您必须对 arr1 应用过滤器并检查 arr1 的键是否存在于 arr2 中,例如:

let arr1 = [
  {
    a: '1'
  },
  {
    b: '4'
  },
  {
    c: '6'
  },
  {
    d: '9'
  }
];
let arr2 = ['a', 'c'];

let result = arr1.filter(item => arr2.includes(Object.keys(item)[0]));
alert(JSON.stringify(result));

答案 1 :(得分:1)

我认为你必须做这样的事情

let arr1 = [
              {
                "a": "1"
          },
          {
            "b": "4"
          },
          {
            "c": "6"
          },
          {
            "d": "9"
          }
];
let arr2 = ["a","c"];
let result = []
for(let obj of arr1){
  for(let key of arr2){
    if(obj.hasOwnProperty(key)){
      result.push(obj);
      break;
    }
  }
}
alert(JSON.stringify(result));