Javascript 将整数数组与对象数组和返回属性进行比较
给定以下对象数组:Javascript 将整数数组与对象数组和返回属性进行比较,javascript,comparison,lodash,Javascript,Comparison,Lodash,给定以下对象数组: var arrayOfObjs = [{ id: "d8eed6df-9f12-47d4-5b71-3352a92ebcf0", typeID: 2 }, { id: "270d8355-d8b6-49c4-48ac-97a44422c705", typeID: 3 }, { id: "sdks7878-d8b6-49c4-48ac-97a44422c705", typeID: 4 } ]; 和一个整数数组
var arrayOfObjs = [{
id: "d8eed6df-9f12-47d4-5b71-3352a92ebcf0",
typeID: 2
},
{
id: "270d8355-d8b6-49c4-48ac-97a44422c705",
typeID: 3
},
{
id: "sdks7878-d8b6-49c4-48ac-97a44422c705",
typeID: 4
}
];
和一个整数数组:
var arrayOfInts = [2, 4];
如果INT数组与arrayOfObjects匹配,如何比较两者并返回ID数组
报税表应为:
var matchingIDs = [
"d8eed6df-9f12-47d4-5b71-3352a92ebcf0",
"sdks7878-d8b6-49c4-48ac-97a44422c705"
];
var missingIDs = ["270d8355-d8b6-49c4-48ac-97a44422c705"];
使用array.prototype.filter、array.prototype.includes和array.prototype.map
变量数据=[{
id:d8eed6df-9f12-47d4-5b71-3352a92ebcf0,
类型ID:2
},
{
id:270d8355-d8b6-49c4-48ac-97a44422c705,
类型ID:3
},
{
id:sdks7878-d8b6-49c4-48ac-97a44422c705,
类型ID:4
}];
var arrayOfInts=[2,4];
var matchingIDs=datas.filterd=>arrayOfInts.includesd.typeID.mape=>e.id;
var missingIDs=datas.filterd=>!ArrayFints.includesd.typeID.mape=>e.id;
日志'matchingIDs:',matchingIDs;
console.log'missingIDs:',missingIDs 使用array.prototype.filter、array.prototype.includes和array.prototype.map
变量数据=[{
id:d8eed6df-9f12-47d4-5b71-3352a92ebcf0,
类型ID:2
},
{
id:270d8355-d8b6-49c4-48ac-97a44422c705,
类型ID:3
},
{
id:sdks7878-d8b6-49c4-48ac-97a44422c705,
类型ID:4
}];
var arrayOfInts=[2,4];
var matchingIDs=datas.filterd=>arrayOfInts.includesd.typeID.mape=>e.id;
var missingIDs=datas.filterd=>!ArrayFints.includesd.typeID.mape=>e.id;
日志'matchingIDs:',matchingIDs;
console.log'missingIDs:',missingIDs 为了实现这一点,我选择了map\filter用法,因为javascript是一种函数式语言 常数allItems=[{ id:d8eed6df-9f12-47d4-5b71-3352a92ebcf0, 类型ID:2 }, { id:270d8355-d8b6-49c4-48ac-97a44422c705, 类型ID:3 }, { id:sdks7878-d8b6-49c4-48ac-97a44422c705, 类型ID:4 }]; 常数validIds=[2,4]; 常量filteredItems=allItems .filter{typeID}=>ValidDS.IncludeTypeId .map{id}=>id
logfilteredItems为了实现这一点,我选择了map\filter用法,因为javascript是一种函数式语言 常数allItems=[{ id:d8eed6df-9f12-47d4-5b71-3352a92ebcf0, 类型ID:2 }, { id:270d8355-d8b6-49c4-48ac-97a44422c705, 类型ID:3 }, { id:sdks7878-d8b6-49c4-48ac-97a44422c705, 类型ID:4 }]; 常数validIds=[2,4]; 常量filteredItems=allItems .filter{typeID}=>ValidDS.IncludeTypeId .map{id}=>id
console.logfilteredItems使用lodash,您可以使用以下链接实现此目的: var arrayOfObjs=[{id:d8eed6df-9f12-47d4-5b71-3352a92ebcf0,typeID:2},{id:270d8355-d8b6-49c4-48ac-97a44422c705,typeID:3},{id:sdks7878-d8b6-49c4-48ac-97a44422c705,typeID:4}]; var arrayOfInts=[2,4]; 变量结果=_arrayOfObjs .keyBy'typeID'//通过对象的类型ID获取对象的字典 .atarrayOfInts//获取与int数组匹配的对象 .map'id'//将每个对象映射到id 价值 console.logresult;
使用lodash,您可以通过以下方式实现此目的: var arrayOfObjs=[{id:d8eed6df-9f12-47d4-5b71-3352a92ebcf0,typeID:2},{id:270d8355-d8b6-49c4-48ac-97a44422c705,typeID:3},{id:sdks7878-d8b6-49c4-48ac-97a44422c705,typeID:4}]; var arrayOfInts=[2,4]; 变量结果=_arrayOfObjs .keyBy'typeID'//通过对象的类型ID获取对象的字典 .atarrayOfInts//获取与int数组匹配的对象 .map'id'//将每个对象映射到id 价值 console.logresult; Arrayofobj总是比arrayOfInts大吗?Arrayofobj总是比arrayOfInts大吗?