给定一个 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
并查找值。
最佳答案
你可以这样做:
for (i = 0; i < data.length; i++) {
if (chars.indexOf(data[i].item) != -1) {
// Do something
} else {
// Do something else
}
}
但是,如果 chars
很大,我会创建一个对象,其键是 chars
的元素,并使用 if (chars_obj[data[i].项目])
。这比每次都搜索数组更有效率。
关于javascript - 如何简化嵌套循环和条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17767341/