【发布时间】:2013-07-19 23:50:47
【问题描述】:
给定一个JS如下:
for (c in chars) {
for (i in data) {
if (data[i].item === chars[c]) {
// do my stuff;
}
else { /* do something else */}
}
}
还有这样的数据:
var chars = [ 'A', 'B', 'C', 'A', 'C' ];
var data = [
{'item':'A', 'rank': '1'},
{'item':'B', 'rank': '2'},
{'item':'C', 'rank': '3'}
// no duplicate
];
有没有比嵌套for 循环和内部条件更简单的语法来表达?
我尝试匹配两个数据集,更准确地说是使用chars 的键来迭代data 并查找值。
【问题讨论】:
-
@acdcjunior 它有效。请记住,迭代变量设置为索引,而不是值(它不像 PHP
foreach)。 -
@Barmar 什么有效?数组的
for in?如果是这样,我并不是说它没有,我说不应该,因为它会搞砸你的代码。 -
...或者像这样:jsfiddle.net/bysBH/7
-
@Hugolpz:是的,我认为您的嵌套循环非常简单。在这种特定情况下,键/值映射绝对是要走的路。也会更快。
标签: javascript jquery json