检索javascript数组中的特定元素

检索javascript数组中的特定元素,javascript,Javascript,我有以下javascript数组: var vat = [ { id: '', description: '' }, { id: 'Zero', description: '0%' }, { id: 'Six', description: '6%' }, { id: 'Nineteen', description: '19%' }, { id: 'TwentyOne', description: '21%' }]; 我需要获取元素的描述,元素的id为'Six'。我认为这是可能的,但我没有成功

我有以下javascript数组:

var vat = [
{ id: '', description: '' },
{ id: 'Zero', description: '0%' },
{ id: 'Six', description: '6%' },
{ id: 'Nineteen', description: '19%' },
{ id: 'TwentyOne', description: '21%' }];
我需要获取元素的
描述
,元素的
id
'Six'。我认为这是可能的,但我没有成功

欢迎任何帮助


谢谢。

您可以
筛选数组,只留下您要查找的项目:

var desc = vat.filter(function (item) {
    return item.id === "Six";
})[0].description;

请注意,这是一种ES5方法,较旧的浏览器不支持这种方法。您可以在之前链接到的MDN文章中找到它的polyfill。

您可以
筛选数组,只留下您要查找的项目:

var desc = vat.filter(function (item) {
    return item.id === "Six";
})[0].description;

请注意,这是一种ES5方法,较旧的浏览器不支持这种方法。您可以在之前链接到的MDN文章中找到它的polyfill。

如果您知道它是第三项,那么:

vat[2]['description']

否则,您可以使用James Allardice建议的过滤器,如果您知道它是第三项,则:

vat[2]['description']

否则,您可以按照James Allardice的建议使用过滤器。数组的结构使其变得有点复杂。这里有一个更简单的替代结构:

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;
  }
}
var结果;
对于(变量i=0;i

另外,另一个答案中建议的
过滤器
方法使这更容易,但它需要一个至少支持JavaScript 1.6的浏览器。

数组的结构使这比必要的更复杂。这里有一个更简单的替代结构:

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;
  }
}
var结果;
对于(变量i=0;i

另外,另一个答案中建议的
过滤器
方法使这更容易,但它需要一个至少支持JavaScript 1.6的浏览器。

如果你想直接访问它,你必须知道它的位置。
例如:

var myDesc = vat[2].description;
或者你可以在上面循环。
例如:

var myDesc = null
for (i in vat) {
    if (vat[i].id == 'Six')  {
        myDesc = vat[i].desc;
    }
}

希望它是您所需要的。

如果您想直接访问它,您必须知道它的位置。
    for(var i=0;i < vat.length;i++){
        if(vat[i].id == "Six"){
            alert(vat[i].description);
        }
    }
例如:

var myDesc = vat[2].description;
或者你可以在上面循环。
例如:

var myDesc = null
for (i in vat) {
    if (vat[i].id == 'Six')  {
        myDesc = vat[i].desc;
    }
}
希望这是您所需要的。

for(var i=0;i    for(var i=0;i < vat.length;i++){
        if(vat[i].id == "Six"){
            alert(vat[i].description);
        }
    }
如果(增值税[i].id==“六”){ 警报(vat[i].说明); } }
用于(变量i=0;i
我假设你想要的不是for循环?是的,Richard,如果可能的话,在一行中。类似的问题:,。我假设你想要的不是for循环?是的,Richard,如果可能的话,在一行中。类似的问题:,。这当然是一个有效的解决方案,但我可能会建议,如果可能的话,将“vat”转换为对象,而不是使用ID作为属性名称的数组。这当然是一个有效的解决方案,但我可能建议,如果可能,将“vat”转换为对象,而不是使用ID作为属性名称的数组。它是一个对象数组,因此可以访问描述。不是[]@mArm.ch,使用括号完全有效。查找javascript括号表示法。如果键(属性)包含空格,这也是必要的。它是一个对象数组,因此可以通过访问描述。不是[]@mArm.ch,使用括号完全有效。查找javascript括号符号。如果键(属性)包含空格,这也是必要的。请解释您的答案好吗?我添加了一段代码,在
vat[I]中提取.description
id为'Six'的元素的
description
。您能解释一下您的答案吗?我在
vat[I]中添加了一段代码。description
id为'Six'的元素的
description