检索我的javascript数组中的特定元素

时间:2013-06-12 13:13:06

标签: javascript

我有以下javascript数组:

var vat = [
{ id: '', description: '' },
{ id: 'Zero', description: '0%' },
{ id: 'Six', description: '6%' },
{ id: 'Nineteen', description: '19%' },
{ id: 'TwentyOne', description: '21%' }];

我需要获得<{1>} 'Six'元素的description。我认为这是可能的,但我没有成功。

欢迎任何帮助。

感谢。

5 个答案:

答案 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);
        }
    }