【问题标题】:Get value by property from javascript object list [duplicate]从javascript对象列表中按属性获取值[重复]
【发布时间】:2014-09-03 09:12:16
【问题描述】:

我想从 javascript 对象列表中获取属性值,我有一个列表

var cars = [{ id: 1, name: 'Audi' }, { id: 2, name: 'BMW' }, { id: 1, name: 'Honda' }];

现在我想通过像这样使用 for 循环来获取 id 或 name 属性值

var cars = [{ id: 1, name: 'Audi' }, { id: 2, name: 'BMW' }, { id: 1, name: 'Honda' }];
 var items=[];
 var firstProp='id';
 for (var i = 0; i < model.length; i++) {

  //original work
  items.push({ value: model[i].firstProp});//here is the problem
 }

请多多指教,谢谢。

【问题讨论】:

  • 嗨,@cookiemonster,这里没有重复。
  • “这里没有重复”是什么意思?这正是您所需要的。同样的问题。同样的问题。同样的答案。
  • ...或者,如果您对该副本不满意,如果您 use Google,您会找到许多其他人。
  • ...还要注意,解决方案甚至在您的问题中。 model[i] 正在使用变量来访问对象的属性。是的,我知道这是一个数组。数组是 JavaScript 中的对象。

标签: javascript


【解决方案1】:

如果我正确理解您的问题,您应该使用方括号表示法而不是点表示法:

//..  
items.push({ value: model[i][firstProp]});//here is the problem

【讨论】:

  • 是的,从我在 OP 的帖子中看到的情况来看,您是正确的 model[i].firstProp 正在调用属性 firstProp 而不是 id 分配给该变量,尽管它更容易使用 @987654325 @
【解决方案2】:

你应该这样做

items.push({ value: model[i][firstProp]});

. 表示法期望 firstProp 作为字典中的键出现,因为 firstProp 是一个包含字符串的变量,您应该使用 [] 表示法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-09-29
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多