如何使用filter函数在javascript中过滤对象

how to filter object in javascript using filter function?

本文关键字:过滤 对象 javascript 何使用 filter 函数      更新时间:2023-09-26

我正在尝试使用filter函数过滤javascript对象。但我得到的错误键没有定义。以下是我的代码https://jsfiddle.net/13n8n3om/

var arr=[
  {
    "EX": {
      "division": "abc",
      "is_active": true,
    }
  },
 {
    "PY": {
      "division": "pqwww",
      "is_active": false,
    }
  }
];
 arr = arr.filter(function(obj) {
                return obj[key] !== 'EX';
            });
            console.log(arr)

预期输出

[
 {
    "PY": {
      "division": "pqwww",
      "is_active": false,
    }
  }
]

只需检查对象的键是否与给定字符串不相等。

var arr = [{ "EX": { "division": "abc", "is_active": true, } }, { "PY": { "division": "pqwww", "is_active": false, } }];
arr = arr.filter(function (obj) {
    return Object.keys(obj)[0] !== 'EX';
});
document.write('<pre>' + JSON.stringify(arr, 0, 4) + '</pre>');

替换

return obj[key] !== 'EX';

带有

return Object.keys(obj)[0] !== 'EX';

基本上,您需要访问obj的第一个属性,而密钥是未定义的。

您需要检查obj不是EX,如下所示:

arr = arr.filter(function(obj, key) {
          if (! obj.EX) {
              return obj;
          }
       });