我有产品的JSON对象。在对象中,我要检查是否有任何产品的featured密钥设置为true。如果键在对象内的任何位置,我想一次在结果上方添加一个h3

假设我有一个包含4个产品的对象,并且其中一个产品的featured密钥设置为true,我将如何调整此代码,以使h3仅被添加一次(当前将被添加全部4次)?

var searchResult = '';
$.each(products, function (id, product) {
    if (products[id].featured) { searchResult += '<h3>Featured</h3>'; }
});

最佳答案

return false回调中添加$.each以打破循环

var searchResult = '';
$.each(products, function (id, product) {
    if (products[id].featured) {
        searchResult += '<h3>Featured</h3>';
        return false;
    }
});

您可以通过使用Array#find()Array#some()来缩短此时间
var searchResult = '';
var featured =  products.some(function(prod){ return prod.featured});
if(featured){
   searchResult += '<h3>Featured</h3>';
}

关于javascript - 如果在JSON对象中找到 key ,则仅触发一次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53418051/

10-13 02:32