首页 > 解决方案 > 如何在javascript中过滤数组内的嵌套对象

问题描述

我在数组中有以下嵌套对象,我想过滤结果以返回特定项目的 id。

const data = [
   {0: {id: 1, country: "SA", address: "IOXX"}},
   {1: {id:2, country: "SAP", name: "N", address: "IOP"}},
   {2: {id:3, country: "S", name: "NO", address: "I"}},
   {3: {id:4, country: "SXX", name: "NOI", address: "INDIA"}},
]

由于我假设的嵌套对象结构,我尝试的解决方案是返回 null

var dataREsult =  data.filter(function(el) {
  return el.id == 4;
});

PS:上面的数据结构来自我正在使用的后端。

我是 javascript 的初学者。任何帮助将非常感激。

标签: javascriptreactjsalgorithmreact-nativedata-structures

解决方案


使用Object.values()内部Array.filter()回调。

const data = [
   {0: {id: 1, country: "SA", address: "IOXX"}},
   {1: {id:2, country: "SAP", name: "N", address: "IOP"}},
   {2: {id:3, country: "S", name: "NO", address: "I"}},
   {3: {id:4, country: "SXX", name: "NOI", address: "INDIA"}},
]

const result = data.filter(el => Object.values(el)[0].id === 4);

for(var i=data.length-1; i>=0; i--) {
  if(Object.values(data[i])[0].id === 4)
    data.splice(i, 1)
}


console.log(data);


推荐阅读