我有一个类似的数组
vendors = [
{
Name: 'Magenic',
ID: 'ABC'
},
{
Name: 'Microsoft',
ID: 'DEF'
} //and so on goes array...
];
Run Code Online (Sandbox Code Playgroud)
如何检查此数组以查看Magenic是否存在?我不想循环,除非我必须.我正在处理可能有几千条记录.
更新
由于这是一个受欢迎的帖子,我想我会分享一些新发现的东西.似乎@CAFxX已经分享了这个!我应该经常阅读这些内容.我遇到了https://benfrain.com/understanding-native-javascript-array-methods/.
vendors.filter(function(vendor){ return vendor.Name === "Magenic" });
Run Code Online (Sandbox Code Playgroud)
使用ECMAScript 2015,使用新的箭头功能更简单:
vendors.filter(vendor => (vendor.Name === "Magenic"));
Run Code Online (Sandbox Code Playgroud) 我的节点应用程序中有两个大型数组.
var styles = [{itemID:..., styleID:..., styleNum:..., otherFields...}]; // 42455 items
var products = [{productID:..., styleNum:..., otherFields...}]; // 72K items
Run Code Online (Sandbox Code Playgroud)
我需要遍历产品并从styles数组中获取关联的styleID,并将新项添加到新数组中.styles数组按styleNum排序.这是我尝试过的:
var i=0, len = products.length, items = new Array(products.length);
for (i = 0; i < len; i++)
{
var workingItem = products[i];
var styleID = filterStyles(workingItem.styleNum)[0].styleID;
var item = {styleID:..., other fields};
items[i]=item;
}
Run Code Online (Sandbox Code Playgroud)
...
function filterStyles(styleNum)
{
var results = [];
var item;
for (var i = 0, len = createdStyles.length; i < len; i++)
{
item = …Run Code Online (Sandbox Code Playgroud)