通过调节另一个对象属性来访问对象数组中的对象值

这行得通,但问题是我可以一次性将naziv.valuein保存在 this 中,这样我就不必声明另一个变量了吗?var nazivfind method

var naziv = obj.find(c => c.name === "naziv");
console.log(naziv.value)

当前输出是应该的test, console.log(naziv.value)我想只是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)


编辑:如果名称相同,还要制作一个数组或值,例如:


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]



森林海
浏览 152回答 3
3回答

阿晨1998

如果您希望多个值作为一个数组,这可以是其中一种方法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)同样,如果该值本身就是预期输出,并且如果只期望单个值,则以下是其中一种方法。在这里,我用过Optional Chainingvar 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下面是另一种方式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);

白板的微信

var obj = [{    name: "naziv",    value: "test"  },  {    name: "zzz",    value: "xxx"  },  {    name: "naziv",    value: "xxx"  }]var naziv = obj.filter(item => item.name === 'naziv').map(item => item.value)console.log(naziv)

明月笑刀无情

你可以使用像这样的解构const {value:naziv} = obj.find(c => c.name === "naziv");
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript