我有一系列项目:
items = [{name: "microphone", cost:1000, improvement:1},
{name: "guitar", cost:5000, improvement: 10},
{name: "keyboard", cost: 10000, improvement: 50},
{name: "band member", cost: 20000, improvement: 100}
];
我想找一个项目的改进'提供它的名字。
我试过这个:
var upgrade = items.findOne({ name: nameInput });
但我收到错误:
Exception while invoking method 'buy' TypeError: Object [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object] has no method 'findOne'
如果我无法使用findone
,是否有另一种方法可以实现我的目标?
答案 0 :(得分:0)
这样的函数可以让你搜索那个数组中的名字:
var findOne = function(arrayOfObjs, searchTerm) {
var result;
arrayOfObjs.forEach(function(item) {
if(item.name == searchTerm) {
result = item.improvement;
}
});
return result
}
findOne(items, "microphone");
答案 1 :(得分:0)
我想通过提供它的名字来找到一个项目的'改进'。
使用reduce方法
var name = "guitar";
var selectedItem = items.reduce(function(prev, current){
if ( current.name === name ) {return current;}
else {return prev;}
});
console.log( selectedItem.improvement );
答案 2 :(得分:0)
试试这个:
items = [{name: "microphone", cost:1000, improvement:1},
{name: "guitar", cost:5000, improvement: 10},
{name: "keyboard", cost: 10000, improvement: 50},
{name: "band member", cost: 20000, improvement: 100}
];
如果您的商品名称为:
itemname = "microphone";
items.forEach(function(obj) {
if(obj.name == itemname){
return obj.improvement;
}
});