javascript - 如何简化嵌套循环和条件?

标签 javascript jquery json

给定一个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].item])。这比每次搜索数组都更有效。

关于javascript - 如何简化嵌套循环和条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17767341/

相关文章:

javascript - javascript生成的对象出现后立即消失

javascript - 用于替换两个选项之间字符的正则表达式

javascript - jQuery加载后无法进行追加

javascript - jQuery获取容器的html,包括容器本身

jquery - CSS、jQuery、Mosaic 组合问题

php - 如何将其转换为数组?

javascript - Ajax调用API以检索JSON数据。你如何使用回复

javascript - jQuery在拖动时触发mouseup

javascript - 有没有办法从两个标签之间提取文本,并以我选择的格式输出?

javascript - 从 javascript 中的 JSON 对象访问多级键