微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

跨 JSON 数组 nodeJS 比较单个对象

如何解决跨 JSON 数组 nodeJS 比较单个对象

例如,如果我有以下 json 数据,我将如何比较此数组以根据数组的单个元素返回 true?
在此示例中,Id 喜欢返回 true,因为 url 都是相同的,忽略所有其他对象。但是,如果其中一个 url 不同,则应返回 false。

[
  {
    id: 1,name: "a",url: "http://www.google.co.uk"
  },{
    id: 2,name: "b",{
    id: 3,name: "c",url: "http://www.google.co.uk"
  }
]

我曾尝试使用过滤器仅获取 url 对象,然后进行比较,但是没有用。
感谢您的任何建议

解决方法

我认为您可以使用“every”方法来检查这一点。

您可以获取第一个位置的 url 并检查整个数组是否满足您的条件。

const firstUrl = yourArray[0].url;
const allUrlsAreTheSame = yourArray.every(item => item.url === firstUrl);
,

它不像 .every() 方法那么优雅,但很好地展示了处理数组迭代的不同方法

const data = [{
    id: 1,name: "a",url: "http://www.google.co.uk"
  },{
    id: 2,name: "b",{
    id: 3,name: "c",url: "http://www.google.co.uk"
  }
]

function urlsAreIdentical(arr) {
  let theurl,urlsAreTheSame = true;
  arr.forEach(obj => {
    if (!theurl) theurl = obj.url;
    else if (theurl != obj.url) urlsAreTheSame = false;
  })
  return urlsAreTheSame;
}

console.log(urlsAreIdentical(data));

data.push({
  id: 4,url: "http://www.yahoo.co.uk"
});


console.log(urlsAreIdentical(data));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。