通过条件化另一个对象属性来访问对象数组中的对象值 [英] Accesing object value in array of objects by conditioning another object property

查看:54
本文介绍了通过条件化另一个对象属性来访问对象数组中的对象值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这可行,但问题是我可以在此 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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆