JavaScript - 查找数组中项目之间的距离
javascriptweb developmentfront end technologyobject oriented programming
假设我们有一个像这样的已排序(递增顺序)的数字数组 −
const arr = [2, 5, 7, 8, 9];
我们需要编写一个接受这样一个数组的 JavaScript 函数。函数应为输入数组的每个元素构造一个新的子数组。
子数组应包含差值(该元素与后续元素之间的差值)。
因此,对于第一个数组元素,差值为 −
5 - 2 = 3 7 - 2 = 5 8 - 2 = 6 9 - 2 = 7
因此,第一个元素的子数组应为 −
[3, 5, 6, 7]
同样,对于第二个元素,应为 −
[2, 3, 4]
对于第三个元素,差值为 −
[1, 2]
第四个 −
[1]
由于第五个是最后一个元素,因此没有剩余项,所以我们不考虑最后一个元素。
因此,完整数组的输出应为 −
const output = [ [3, 5, 6, 7], [2, 3, 4], [1, 2], [1] ];
示例
其代码为 −
const arr = [2, 5, 7, 8, 9]; const distanceBetween = (arr,r = []) => { if(r.length <= arr.length-2) { let temp = []; let b = arr[r.length]; arr.forEach(e => temp.push(e - b)); r.push(temp.filter(e => e > 0)); return distanceBetween(arr,r); } else { return r; }; } console.log(distanceBetween(arr));
输出
控制台中的输出将是 −
[ [ 3, 5, 6, 7 ], [ 2, 3, 4 ], [ 1, 2 ], [ 1 ] ]