我有两个不断修改的json文件。它们的格式如下:
[
{
"rank": 1,
"points": 10
},
{
"rank": 15,
"points": 1601
}
]
因此,嵌套键的数量可以是任何值,在上面的示例中是2。我循环遍历文件,从每个嵌套键中获得我想要的值,并将它们放入一个数组中。所以数组是这样的,const array1 = [ "1", "15" ]
& const array2 = [ "18", "5" ]
等等。我现在有两个json文件-数组,一个显示以前的排名(修改前),另一个显示当前的排名。我正在尝试做的是,循环数组并减去它们之间的整数,这样我就可以创建一个类似这样的字符串:"Rank: 15 (-10)“(也就是表示它是增加了还是减少了以及多少。但是由于数组可以无限大,我必须创建一个循环,它将用array2等方法减去array1。
不知道怎么做,有人能帮帮我吗?
发布于 2018-09-27 05:42:44
被你的问题搞糊涂了..。但我还是要试一试。似乎您只是将一个数组的索引位置与另一个数组的索引位置进行比较,并提供一些输出。可以做类似以下的事情:
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);
值得注意的是,这种解决方案是脆弱的。它要求两个数组的大小相等,并且所有元素都是整数。如果你使用它,最好在它里面建立一些防护栏,否则如果给出不正确的结构化数据,它将抛出一个错误。
发布于 2018-10-10 10:57:09
如果我的理解是正确的,你的情况是两个整数数组,你想要显示差异吗?
/* 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
https://stackoverflow.com/questions/52526248
复制相似问题