如果json对象键在javascript中具有所有相同的值,如何检查并返回true?
Posted
技术标签:
【中文标题】如果json对象键在javascript中具有所有相同的值,如何检查并返回true?【英文标题】:How to check and return true if json object key is having all same values in javascript? 【发布时间】:2021-08-03 01:15:57 【问题描述】:我有以下示例 JSON 对象:
var data = [
"id" : 1,
"name" : "Abc",
"age" : 30,
"married" : true,
"city": "ABC"
,
"id" : 2,
"name" : "Def",
"age" : 25,
"married" : true,
"city": "ABC"
,
"id" : 3,
"name" : "Pqr",
"age" : 28,
"married" : false,
"city": "ABC"
,
"id" : 4,
"name" : "Xyz",
"age" : 40,
"married" : true,
"city": "ABC"
];
如果所有city
键值仅是ABC
,我想返回true
并将其存储在一个变量中,否则它应该返回false
(即,如果city
键值之一不是@ 987654328@) 来自给定的JSON
对象。谁能告诉我如何实现这一目标。提前致谢。
【问题讨论】:
使用Array.prototype.every
来测试数组的每个元素是否为真。
【参考方案1】:
使用Array#every
:
const data = [ "id" : 1, "name" : "Abc", "age" : 30, "married" : true, "city": "ABC" , "id" : 2, "name" : "Def", "age" : 25, "married" : true, "city": "ABC" , "id" : 3, "name" : "Pqr", "age" : 28, "married" : false, "city": "ABC" , "id" : 4, "name" : "Xyz", "age" : 40, "married" : true, "city": "ABC" ];
const valid = data.every(( city ) => city === 'ABC');
console.log(valid);
【讨论】:
【参考方案2】:实现这一目标的三种可能方式:
使用Array#every
使用Array#some
使用Array#filter
let data = [id:1,name:"Abc",age:30,married:!0,city:"ABC",id:2,name:"Def",age:25,married:!0,city:"ABC",id:3,name:"Pqr",age:28,married:!1,city:"ABC",id:4,name:"Xyz",age:40,married:!0,city:"ABC"];
console.log(data.every(( city ) => city === "ABC"));
console.log(!data.some(( city ) => city !== "ABC"));
console.log(!data.filter(( city ) => city !== "ABC").length);
【讨论】:
@Guna 请检查这是否解决了您的问题,如果您有任何问题,请告诉我。 非常感谢您的三种解决方法,都解决了我的问题,非常感谢您的帮助!【参考方案3】:简单地说:
data.filter(x => x.city === 'ABC')
请在打开主题之前对问题进行更详细的搜索。
【讨论】:
感谢您的回复,但它只会过滤 ABC 值,不会检查每个键。谢谢。【参考方案4】:data.some((el) => el.city !== "ABC")
【讨论】:
以上是关于如果json对象键在javascript中具有所有相同的值,如何检查并返回true?的主要内容,如果未能解决你的问题,请参考以下文章