这是我在这里发表的第一篇文章:-)
请您对此提出建议:
我有一个对象和一个数组:
activeItems = {
itemId: ["itemid1", "itemid2", "itemid3", "itemid4", "itemid5", "itemid6", "itemid7", "itemid8", "itemid9", "itemid10"],
price: ["10.50", "22.10", "13.40", "11", "1100", "500", "100", "400", "500", "20"]
};
selectItems = ["itemid3", "itemid8", "itemid9"];
在 activeItems 对象中,price[0]
表示 itemId[0]
的价格。
所有价格均按正确顺序排列,代表所有商品 ID 的价格。
现在,我想创建一个包含 selecteItems
数组价格的新对象。
它应该看起来像这样:
newObject = {
itemId: ["itemid3","itemid8","itemid9"],
price: ["13.40", "400", "500"]
};
基本上,我正在寻找一个公式,为 activeItems
中的 selectedItems
创建新对象,并为其添加价格数组。
提前谢谢您!
最佳答案
使用 forEach
循环并从 activeItems.itemId
获取项目索引可以从 activeItems.price
获取对应的价格值.
var activeItems = {
itemId: ["itemid1", "itemid2", "itemid3", "itemid4", "itemid5", "itemid6", "itemid7", "itemid8", "itemid9", "itemid10"],
price: ["10.50","22.10","13.40","11","1100","500","100","400","500","20"]
};
var selectItems = ["itemid3","itemid8","itemid9"];
var itemId = [];
var price = [];
selectItems.forEach(function(item){
var index = activeItems.itemId.indexOf(item);
itemId.push(item);
price.push(activeItems.price[index]);
});
var newObject = {
itemId: itemId,
price : price
};
console.log(newObject);
关于javascript - JS数组: how to compare two and create third,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49954692/