首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >javascript比较int数组并计算每个数组的差

javascript比较int数组并计算每个数组的差
EN

Stack Overflow用户
提问于 2018-09-27 05:26:46
回答 2查看 128关注 0票数 -4

我有两个不断修改的json文件。它们的格式如下:

代码语言:javascript
复制
[ 
  { 
    "rank": 1,
    "points": 10 
  },
  { 
    "rank": 15,
    "points": 1601 
  }
]

因此,嵌套键的数量可以是任何值,在上面的示例中是2。我循环遍历文件,从每个嵌套键中获得我想要的值,并将它们放入一个数组中。所以数组是这样的,const array1 = [ "1", "15" ] & const array2 = [ "18", "5" ]等等。我现在有两个json文件-数组,一个显示以前的排名(修改前),另一个显示当前的排名。我正在尝试做的是,循环数组并减去它们之间的整数,这样我就可以创建一个类似这样的字符串:"Rank: 15 (-10)“(也就是表示它是增加了还是减少了以及多少。但是由于数组可以无限大,我必须创建一个循环,它将用array2等方法减去array1。

不知道怎么做,有人能帮帮我吗?

EN

回答 2

Stack Overflow用户

发布于 2018-09-27 05:42:44

被你的问题搞糊涂了..。但我还是要试一试。似乎您只是将一个数组的索引位置与另一个数组的索引位置进行比较,并提供一些输出。可以做类似以下的事情:

代码语言:javascript
复制
const arr1 = [1, 15, 43];
const arr2 = [18, 30, 12];

const compareRanks = (oldArray, newArray) => {
  oldArray.forEach((oldRank, index) => {
    const newRank = newArray[index];
    console.log(`Rank: ${newRank}(${oldRank - newRank})`);
  });
};

compareRanks(arr1, arr2);

值得注意的是,这种解决方案是脆弱的。它要求两个数组的大小相等,并且所有元素都是整数。如果你使用它,最好在它里面建立一些防护栏,否则如果给出不正确的结构化数据,它将抛出一个错误。

票数 0
EN

Stack Overflow用户

发布于 2018-10-10 10:57:09

如果我的理解是正确的,你的情况是两个整数数组,你想要显示差异吗?

代码语言:javascript
复制
/* given 2 arrays (of maybe non-equal length) */
const before = [10,20,30,40,50]
const after = [5,18,35,42,55,100]

/* derive the data needed */
const shorterArray = before.length <= after.length ? before : after
const pairs = shorterArray.map((ele, idx) => 
    ({
      points: ele,
      diff: ele - after[idx]
    })
  )
  
/* print output */
pairs.map(({points, diff}=x) =>             // use object destructuring to separate the elements
  console.log(`Rank: ${points} (${diff})`)) // print output

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52526248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档