如何在javascript中检查两个数字是不是相等[重复]

Posted

技术标签:

【中文标题】如何在javascript中检查两个数字是不是相等[重复]【英文标题】:How to check if two numbers are equal in javascript [duplicate]如何在javascript中检查两个数字是否相等[重复] 【发布时间】:2019-07-27 11:40:48 【问题描述】:

假设我们有一个数组: let arr = [10,10,5,11,5]

如何检查所有相等的数字? (基本上是重复的)

我想到的是一个 forEach 并比较每个数字,但这不是很理想。过滤器?可能是。任何人都有任何最佳的好主意吗?

【问题讨论】:

“所有数字都相等”是什么意思?你想要数组中的唯一数字吗?您想知道它们是否相等?还是……? 你想要的输出是什么?没有任何重复元素的数组? 我不确定是谁对所有答案投了反对票,但这很荒谬:问题陈述不够充分——如果有什么问题应该反对的话。 @ChrisD A filter 也迭代并运行比较。您需要更具体地说明问题。 检查这个:***.com/a/38206980/2050306 【参考方案1】:

您可以使用Set 删除重复项,然后比较两个数组的长度。

let arr1 = [10,10,5,11,5]
let arr2 = [10,11,5]

function hasDuplicates(arr) 
  return arr.length != [...new Set(arr)].length


console.log(hasDuplicates(arr1))
console.log(hasDuplicates(arr2))

【讨论】:

【参考方案2】:

every 真的很快

let arr = [10,10,5,11,5]
//arr = [10,10,10,10]
if (arr.every( v => v === arr[0] )) 
  console.log("yes")
 else 
  console.log("no")

或使用Lodash

let arr = [10,10,5,11,5]
//arr = [10,10,10,10]
if (_.uniq(arr).length == 1) 
  console.log("yes")
 else 
  console.log("no")
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>

【讨论】:

【参考方案3】:

您可以使用reduce 来建立您需要的值

let arr = [10, 10, 5, 11, 5];

let duplicates = getDuplicates(arr);

console.log(duplicates);

function getDuplicates(arr) 
  let duplicates = arr.reduce((acc, item) => 
    if(acc[item] !== undefined) 
      acc[item] = true;
     else 
      acc[item] = false;
    
    return acc;
  , );
  
  return Object.keys(duplicates).filter(item => duplicates[item]);

【讨论】:

【参考方案4】:

你可以使用过滤器

let arr = [10,10,5,11,5];

const duplicates = array => array.filter((item, index) => array.some((i, idx) => i === item && idx < index));

console.log(duplicates(arr));

或减少

let arr = [10,10,5,11,5];

const duplicates = array => array.reduce((results, item, index) => 
  if (!results.some(i => i === item) && array.some((i, idx) => i === item && index !== idx)) 
    results.push(item);
  
  return results;
, []);

console.log(duplicates(arr));

【讨论】:

以上是关于如何在javascript中检查两个数字是不是相等[重复]的主要内容,如果未能解决你的问题,请参考以下文章

判断两个数组是不是相等

如何检查结束时间和开始时间是不是与javascript相等

如何检查 Lua 中的两个值是不是原始相等?

python - 如何在python中使用IF语句检查两个列表的元素是不是相等?

如何检查存储过程中两个 SELECT 语句的输出是不是相等、大于或小于?

js中如何判断两个浮点数是不是相等