javascript - JS数组: how to compare two and create third

标签 javascript arrays

这是我在这里发表的第一篇文章:-)

请您对此提出建议:

我有一个对象和一个数组:

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/

相关文章:

javascript - 两个数组中的元素组合的逻辑(Javascript/Typescript)

javascript - 即使 ng-model 存在于 AngularJS 中,ng-change 也不起作用

javascript - Flask 看不到 Node 发送的 JSON 数据

javascript - 使用 Vue 和 Axios 进行投票按钮

c++ - 将 unicode 字符串与 C++ 符号进行比较?

javascript - Angular - 更新过滤器上的 ngFor 索引

javascript - ajax xhr.upload.addEventListener 不适用于跨域调用

Javascript数组元素没有改变

java - 比较数组值和 HashMap

javascript - 多行单选按钮,只获取最后一行的值