通过条件化另一个对象属性来访问对象数组中的对象值 [英] Accesing object value in array of objects by conditioning another object property
问题描述
这可行,但问题是我可以在此 find方法
中一次保存 naziv.value
在 var naziv
中吗不必声明另一个变量?
This works, but question is can I save the naziv.value
in var naziv
in one go, inside this find method
so I don't have to declare another variable?
var naziv = obj.find(c => c.name === "naziv");
console.log(naziv.value)
当前输出是应该通过 console.log(naziv.value)
进行的 test
,我想只是 console.log(naziv)
Current output is as it should be test
by console.log(naziv.value)
, I would like to be just console.log(naziv)
var obj = [{
name: "naziv",
value: "test"
},
{
name: "zzz",
value: "xxx"
}
]
var naziv = obj.find(c => c.name === "naziv");
console.log(naziv.value)
如果名称相同,还可以创建一个数组或值,例如:
And also to make an array or values if name is the same, example:
var obj = [{
name: "naziv",
value: "test"
},
{
name: "zzz",
value: "xxx"
},
{
name: "Telefon[]",
value: "tel1"
}, {
name: "Telefon[]",
value: "tel2"
}
]
var naziv = obj.find(c => c.name === "Telefon[]");
console.log(naziv.value)
应为: [tel1,tel2]
推荐答案
如果您希望多个值作为数组,这可能是其中一种方法
If you want multiple values to be as an array, this can be one of the ways
var obj = [{name:"naziv",value:"test"},{name:"zzz",value:"xxx"},{name:"Telefon[]",value:"tel1"},{name:"Telefon[]",value:"tel2"}]
var naziv = obj.filter(c => c.name === "Telefon[]").map(res => res.value);
console.log(naziv)
同样,如果该值本身是预期的输出,并且如果仅期望单个值,则使用以下方法之一.在这里,我使用了 可选链接代码>
Likewise, if the value is itself is the intended output and if only single value is expected then below is one of the ways. Here, I have used Optional Chaining
var obj = [{name:"naziv",value:"test"},{name:"zzz",value:"xxx"},{name:"Telefon[]",value:"tel1"}]
var naziv = obj.find(c => c.name === "Telefon[]")?.value;
console.log(naziv)
如果您需要此代码来运行某些较旧版本的浏览器,并且不支持 Optional Chaining
,那么下面是另一种方式
There could be a chance if you need this code to run some older versions of the browsers and there's no support for Optional Chaining
then below is yet another way
var obj = [{name: "naziv",value: "test"},{name: "zzz",value: "xxx"},{name: "Telefon[]",value: "tel1"}]
var naziv = (obj.find(c => c.name === "Telefon[]") || {}).value;
console.log(naziv)
var notFound = (obj.find(c => c.name === "not_found") || {}).value;
console.log(notFound);
这篇关于通过条件化另一个对象属性来访问对象数组中的对象值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!