【问题标题】:how check the json array contains repeated values in Nodejs?如何检查 json 数组是否包含 Nodejs 中的重复值?
【发布时间】:2019-09-21 22:22:23
【问题描述】:
var values = {[
    { name: 'jerem' },
    { name: 'jio' },
    { name: 'paul' },
    { name: 'jio' }}
];

var valueArr = values.map(function(item){ return item.name });
var isDuplicate = valueArr.some(function(item, idx){ 
    return valueArr.indexOf(item) != idx 
});
console.log(isDuplicate);

如何使用promise all和async来编写上面的代码?有人可以帮我吗

【问题讨论】:

  • 为什么要在异步方法中执行此操作?其他海报回答了您的标题问题,但没有回答您在代码下方提出的问题。你能澄清一下你想回答什么吗?

标签: node.js async-await


【解决方案1】:

有很多解决方案可以从数组中找到重复的对象

解决方案 1:

 var values = [
    { name: 'someName1' },
    { name: 'someName2' },
    { name: 'someName1' },
    { name: 'someName1' }
]

// solution
var hasDuplicate = false;
values.map(v => v.name).sort().sort((a, b) => {
  if (a === b) hasDuplicate = true
})
console.log('hasDuplicate', hasDuplicate)

解决方案二:如果您在支持 ECMA Script 6 的 Set 的环境中,那么您可以使用 Array.prototype.some 和 Set 对象,像这样

let seen = new Set();
var hasDuplicates = values.some(function(currentObject) {
    return seen.size === seen.add(currentObject.name).size;
});

【讨论】:

    【解决方案2】:
    const filtered = values.filter(ele => ele.name == "YOUR_CONDITION");
    if(filtered.length > 1){
      // array contains duplicate elements.
    }
    

    【讨论】:

    • 请添加一些描述。
    猜你喜欢
    • 1970-01-01
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 2013-10-27
    • 2020-08-09
    • 2019-04-06
    • 2018-04-25
    相关资源
    最近更新 更多