如何从数组的对象中获取数据

时间:2016-08-03 08:27:18

标签: javascript

我有一个类似下面的数据结构......

[
  {name: "coke",  price:"10"},
  {name: "sprit", price: "20"}
]

我的问题是如何根据名称得到价格? 例如,如何获得焦炭价格?

5 个答案:

答案 0 :(得分:2)

使用您喜欢的任何循环方法(例如forArray.prototype.forEachArray.prototype.filter)遍历数组并测试每个对象的name属性的值,直到找到一个你想要的。然后获取它的value属性。

答案 1 :(得分:2)

可以使用循环函数

    var dataArr = [
      {name: "coke",  price:"10"},
      {name: "sprit", price: "20"}
    ];

    for(var i=0;i<dataArr.length;i++){
         if(dataArr[i].name == "coke"){
             console.log(dataArr[i].price); // prints 10
         }
    }

答案 2 :(得分:2)

只需遍历数组并获取object属性即可。

var arr = [{name: "coke",  price:"10"},{name: "sprit", price: "20"}];

for (var i = 0, len = arr.length; i < len; i++) {
  if(arr[i].name === "coke"){
       console.log(arr[i].price);
  }
}

答案 3 :(得分:0)

请尝试:

(arr.find(function(item){ return item.name === 'coke'}) || {}).price;

或者您可以找到所有名为“可乐”的项目:

arr.filter(function(item){
    return item.name === 'coke';
})

答案 4 :(得分:0)

var data = [{
  name: "coke",
  price: "10"
}, {
  name: "sprit",
  price: "20"
}];

function getValue(data, name) {
  for (let i = 0; i < data.length; i++) {
    if (data[i].name === name) {
      return data[i].price;
    }
  }
}

var value = getValue(data, 'coke');
alert(value);

https://jsfiddle.net/ej5ofsxm/

您可以遍历数组并根据名称获取价格。