我有一个像
vendors = [ { Name: 'Magenic', ID: 'ABC' }, { Name: 'Microsoft', ID: 'DEF' } //and so on goes array... ];
如何检查此数组以查看Magenic是否存在?除非必须,否则我不想循环播放。我正在处理几千条记录。
更新
由于这是一个受欢迎的帖子,所以我想分享一些新发现。看来@CAFxX已经分享了!我应该更经常阅读这些内容。
vendors.filter(function(vendor){ return vendor.Name === "Magenic" })
借助 ECMAScript 2015 ,使用新的箭头功能甚至更加简单:
vendors.filter(vendor => vendor.Name === "Magenic")
2018 edit :这个答案来自2011,当时浏览器没有广泛支持数组过滤方法和箭头功能。。
没有“魔术”的方法来检查数组中没有循环的内容。即使使用某些函数,该函数本身也会使用循环。您所能做的就是在找到要查找的内容后立即打破循环,以最大程度地减少计算时间。
var found = false; for(var i = 0; i < vendors.length; i++) { if (vendors[i].Name == 'Magenic') { found = true; break; } }