首页 > 解决方案 > 在对象中创建一个具有不同数组元素的新数组

问题描述

我有这个对象,里面有 2 个数组,如何创建一个新数组,其中 array1 中的每个元素与 array2 中的对应元素不同。例如这里结果数组应该是

["$1", "$5", "$6"]
{
  "2": ["$3","$4","$8"], 
  "3": ["$4","$9","$2"]
}

标签: javascriptjqueryarraysjsonobject

解决方案


您可以使用地图轻松实现此结果

  1. 首先,您需要从两个数组中获取相同索引处的元素
  2. 将它们转换为Number类型
  3. 获取差异但一定要使用Math.abs获取绝对值。
  4. 通过在它之前添加返回结果$

const obj = {
  "2": ["$3", "$4", "$8"],
  "3": ["$4", "$9", "$2"],
};

const result = obj["2"].map((el, i) => {
  // First Step
  const first = obj["2"][i];
  const second = obj["3"][i];

  // Second Step
  const regex = /\d+/;
  const firstNumber = parseInt(first.match(regex));
  const secondNumber = parseInt(second.match(regex));
  
  // Third Step
  const diff = Math.abs(firstNumber - secondNumber);
  
  // Fourth step
  return `$${diff}`;
});

console.log(result);


推荐阅读