javascript - 在 JavaScript 中从数组中查找唯一数字
问题描述
请让我知道这是从数组中查找唯一编号的最佳方法吗?
var singleNumber = function(nums) {
for (var i = 0; i < nums.length; i++) {
if (i === 0) {
nums[0] = 0 ^ nums[0];
/* console.log(nums[0]); */
} else {
nums[0] ^= nums[i];
/* console.log(nums[0]); */
}
}
console.log(nums[0]);
return nums[0];
};
singleNumber([2, 2, 3, 3, 4]);
如果您对此有更好的方法,请帮助我。
解决方案
我创建了两个从传递的数组中返回唯一数字的函数:
var getFirstUniqueNumber = function(nums) {
var number = null;
var map = {};
nums.forEach((val) => {
if (!map[val] && (number === null)) number = val;
if (map[val] && (number !== null)) number = null;
map[val] = true;
});
return number;
};
var getLastUniqueNumber = function(nums) {
var number = null;
var map = {};
nums.forEach((val) => {
if (!map[val]) number = val;
map[val] = true;
});
return number;
};
我在这里创建了一个小提琴:https ://jsfiddle.net/u88qgxrr/2/
他们按照名字说的做,你可能想要最后一个唯一的数字!
推荐阅读
- android - Kotlin 中的 SAM 转换(Lambda 表达式)
- javascript - 如何在 SPA (react, vue) 中刷新?
- android - Kotlin 改造错误“预期为 BEGIN_ARRAY,但为 BEGIN_OBJECT”
- botframework - 通过建议选项启用主动学习过滤器后,无法在 qna maker 中获得建议
- javascript - 为什么当我添加第三个对象时 array.reduce 返回 NaN
- python - 在 matplotlib 中不断更新的绘图
- youtube - 如何创建基于章节的 YouTube 播放列表,如“The Coding Train”?
- python - 如何使用 sinc 函数为信号创建低通滤波器/高通滤波器,其中信号 x 给定,参数 alpha <1 和 beta>1 在 python
- excel - C# VSTO Add-in Excel:这个 Excel Super-Tab 控件的名称是什么以及如何制作它?(上下文选项卡或工具选项卡)
- mongodb - 如何将模型从文档列表更新为mongodb中的数组