首页 > 解决方案 > 如何在 JavaScript 中从数组中查找缺失的数字?

问题描述

我有一个带有数字的字符串,例如"3 -1 0 5". 我需要从第一个(排序的)数组中生成一个缺少数字的字符串。排序的第一个数组是[-1, 0, 3, 5],因此给定序列中缺少的数字是[1, 2, 4]

我正在尝试用现代 JS 以最紧凑的方式解决它,而不仅仅是split, parse, sort, for min..maxif index -1then push,你知道的。

标签: javascriptarraysalgorithmnumbers

解决方案


您可以将过滤方法与地图 方法结合使用。

let array =  "3 -1 0 5 -3 7".split(' ').map(Number);
array.sort((a, b) => a-b);
missing = Array.from({length: array[array.length-1] - array[0] + 1}, 
                        (_, idx) => array[0] + idx)
               .filter(elem => !array.includes(elem));
console.log(missing);


推荐阅读