我有以下javascript数组:
var vat = [
{ id: '', description: '' },
{ id: 'Zero', description: '0%' },
{ id: 'Six', description: '6%' },
{ id: 'Nineteen', description: '19%' },
{ id: 'TwentyOne', description: '21%' }];
我需要获得<{1>} 'Six'元素的description
。我认为这是可能的,但我没有成功。
欢迎任何帮助。
感谢。
答案 0 :(得分:5)
您可以filter
数组只留下您要查找的项目:
var desc = vat.filter(function (item) {
return item.id === "Six";
})[0].description;
请注意,Array.prototype.filter
是ES5方法,旧浏览器不支持。您可以在以前链接的MDN文章中找到它的polyfill。
答案 1 :(得分:0)
如果您知道这是第三项,那么:
vat[2]['description']
否则你可以使用James Allardice建议的过滤器
答案 2 :(得分:0)
数组的结构使得这比必要的复杂一点。这是一个更简单的替代结构:
var vat = { '': '', 'Zero': '0%' } // and so on
vat['Zero'] // gives '0%'
如果你遇到了你所拥有的结构,你需要一个循环。例如:
var result;
for (var i = 0; i < vat.length; i++) {
if (vat[i].id == 'Six') {
result = vat[i].description;
break;
}
}
PS。在不同的答案中建议的filter
方法使这更容易,但它需要一个至少支持JavaScript 1.6的浏览器。
答案 3 :(得分:0)
如果您想直接访问它,您必须知道该位置 示例:
var myDesc = vat[2].description;
或者你可以循环它。
示例:
var myDesc = null
for (i in vat) {
if (vat[i].id == 'Six') {
myDesc = vat[i].desc;
}
}
希望这就是你所需要的。
答案 4 :(得分:0)
for(var i=0;i < vat.length;i++){
if(vat[i].id == "Six"){
alert(vat[i].description);
}
}