检索javascript数组中的特定元素
我有以下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'。我认为这是可能的,但我没有成功
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
。