如何检查JSON对象数组中是否存在某个键

25 浏览
0 Comments

如何检查JSON对象数组中是否存在某个键

我有以下的JSON对象数组,

let data = [
   {
      "node":[
         {
            "name":"aaaaa",
            "count":"2",
         }
      ]
   },
   {
      "client":[
         {
            "name":"bbbbb",
            "count":"2",
         }
      ]
   },
   {
      "ip_address":[
         {
            "name":"ccccc",
            "count":"3",
         }
      ]
   },
   {
      "compute":[
         {
            "name":"dddd",
            "count":"1",
         }
      ]
   }
]
let find_key = "ip_address";

需要检查根键是否存在(例如需要找到`ip_address`是否存在)。请不使用forEach。感谢提前帮助。

尝试了以下方式但没有成功。非常感谢帮助。

尝试像下面这样,但它不起作用(始终返回`false`),

console.log(data[0].has(find_key)); // false
console.log(data.has(find_key)); // false
console.log(data[0].hasOwnProperty(find_key)); // false

0
0 Comments

如何检查JSON数组中的对象是否存在某个键

当你有一个对象数组,并且希望检查是否存在某个键时,你可以使用Array.some()方法或lodash的_.some()方法来检查每个对象是否具有该键。

以下是一个使用vanilla JS和lodash的示例代码:

const data = [
  {"node":[{"name":"aaaaa","count":"2"}]},
  {"client":[{"name":"bbbbb","count":"2"}]},
  {"ip_address":[{"name":"ccccc","count":"3"}]},
  {"compute":[{"name":"dddd","count":"1"}]}
]
// 使用vanilla JS
const result1 = data.some(o => 'ip_address' in o)
console.log(result1)
// 使用lodash
const result2 = _.some(data, o => _.has(o, 'ip_address'))
console.log(result2)

在上述代码中,我们有一个名为data的数组,它包含了一些对象。我们想检查数组中的每个对象是否具有名为ip_address的键。

首先,我们使用vanilla JS的Array.some()方法,该方法接受一个回调函数,并在数组中的任何对象中返回true时停止遍历。在回调函数中,我们使用in操作符来检查对象是否具有特定键。如果有任何对象具有该键,则Array.some()方法将返回true。

然后,我们使用lodash的_.some()方法,该方法具有相同的功能。回调函数使用_.has()方法来检查对象是否具有特定键。如果任何对象具有该键,则_.some()方法将返回true。

在上述示例中,result1result2的值将分别为truetrue,因为数组中的一个对象具有名为ip_address的键。

请注意,在使用lodash之前,您需要在HTML文件中包含lodash库的链接,如下所示:


这就是如何检查JSON数组中的对象是否存在某个键的方法。您可以根据自己的需求选择使用vanilla JS还是lodash来实现。希望本文对您有所帮助!

0
0 Comments

问题出现的原因是需要在一个JSON数组的对象中检查是否存在某个键。

解决方法是使用JavaScript的`array.some()`方法来判断是否存在该键。具体代码如下:

let data = [
   {
      "node":[
         {
            "name":"aaaaa",
            "count":"2",
         }
      ]
   },
   {
      "client":[
         {
            "name":"bbbbb",
            "count":"2",
         }
      ]
   },
   {
      "ip_address":[
         {
            "name":"ccccc",
            "count":"3",
         }
      ]
   },
   {
      "compute":[
         {
            "name":"dddd",
            "count":"1",
         }
      ]
   }
]
let find_key = "ip_address";
let exists = data.some(x => x[find_key]);
console.log(exists);

以上代码会在控制台输出是否存在`ip_address`这个键的结果。

0