我有产品的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/