javascript - 如何在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 的初学者。任何帮助将非常感激。
解决方案
使用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);
推荐阅读
- java - Apache BeanUtils.copyProperties 首次访问变慢
- cakephp - 我正在使用 CakePHP 3.7 开发一个网站。我在 localhost 上工作,想从 localhost 向 gmail 发送电子邮件,但出现错误
- sublimetext3 - 在文本编辑器中按文件名切换到选项卡
- python - 使用python将pdf表连接到一个excel表中
- r - R:如果数据框 B 中的相应单元格等于某个值,则对数据框 A 的行中的单元格求和
- c# - 如何在 .NET Core 3.1 和 Entify Framework Core 中处理非常大的请求是个好主意
- javascript - 本地存储上的 Cookie?
- java - 阶乘递归,答案在纸上没有意义?
- r - 如何将数字函数应用于循环中的非数字
- python - 如何使用 Anaconda 升级到 Python 3.8?