如何在Javascript中选择对象内的数组内的字段[重复]
Posted
技术标签:
【中文标题】如何在Javascript中选择对象内的数组内的字段[重复]【英文标题】:How to select a field inside an array inside an object in Javascript [duplicate] 【发布时间】:2020-03-27 00:28:57 【问题描述】:我有这样的对象数组:
我只需要选择 coreSystemID = 'T24' 的数组,所以我尝试了credsArr.find()
它显示我的.find
不是一个函数。
下面是我的代码:
var creds = credsArr.find(x => x.coreSystemID === 'T24')
我应该使用这样的索引值 - credsArr[3053],因为索引可能会有所不同,所以我需要选择 coreSystemID = 'T24' 的数组
【问题讨论】:
credsArr
是一个对象,而不是数组,其值相同,3052 和 3053...
如果不需要密钥(3053):Object.values(credsArr).find(cred => cred.coreSystemID === "T24")
【参考方案1】:
let keys = Oject.keys(credsArr).filter(key => credsArr[key].coreSystemID==='T24')
keys 将拥有 credsArr 的所有键,其中 credsArr[key].coreSystemID 为 'T24'
let systemT24 = credsArr[keys[0]]
将为您提供您正在寻找的对象,因为只有一个 coreSystemID 为“T24”的对象。
如果您有多个对象的 coreSystemID 可能为“T24”,您可以将其映射到一个新数组,如下所示:
let systemT24 = keys.map(key => credsArr[key])
【讨论】:
我得到这样的输出 - 0: "3053"... 你能帮忙选择这个数组 "3053" 中的所有元素吗? @Mar1009 查看修改后的答案。【参考方案2】:你可以使用 Object.values(credsArr):
var creds = Object.values(credsArr).find(x => x.coreSystemID === 'T24');
或者如果你需要对象的键:
var creds = Object.entries(credsArr).find(x => x[1].coreSystemID === 'T24');
let key = creds[0];
let value = creds[1];
【讨论】:
它说 Object.values is not a function is not a function以上是关于如何在Javascript中选择对象内的数组内的字段[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JavaScript 或 jQuery 更改数组内的对象的值?
如何通过猫鼬(javascript)中的多个值查询数组内的对象?