消除JSON对象中的重复项 [英] Elminating duplicates in a JSON object
问题描述
[
{
"lastName": "Seymour",
"gender": "Female",
"patientID": 18134,
"firstName": "Stephanie",
"age": "111Y"
},
{
"lastName": "Seymour",
"gender": "Female",
"patientID": 18134,
"firstName": "Stephanie",
"age": "111Y"
}
]
如何在添加是否包含此值之前检查我的json ...
How can i check my json before adding whether it contains this value or not...
推荐答案
明显的方式
最明显的方法是使用a for
循环并迭代数组中的所有项目,并在每次想知道您是否已经有特定项目时进行比较。琐碎但乏味,特别是当你有许多比较时。
Obvious way
The most obvious way would be to use a for
loop and iterate over all items in array and compare every time when you'd like to know whether you already have a particular item in it. Trivial but tedious especially when you have many compares to make.
function contains(items, obj) {
var itemKey = null;
var objKey = obj.firstName + ";" + obj.lastName;
var result = false;
for(var i = 0; !result && i < arr.length; i++)
{
itemKey = items[i].firstName + ";" + items[i].lastName;
result = itemKey === objKey;
}
return result;
};
每当您要搜索现有对象时:
Whenever you'd be searching for existing object:
contains(arr, newObj);
Smart(呃)方式
这个代码使用Javascript的能力,其原型可以在一种关联存储器存储中用作数组。假设您在 arr
变量中有JSON项。定义比较密钥(比如它的名字和姓氏):
Smart(er) way
This code uses the ability of Javascript whose prototypes can be used as arrays in a sort of associative memory storage. Suppose you have your JSON items in arr
variable. Define your compare key (say it's first name and last name):
var arr = /* your JSON object */;
var hash = (function() {
var keys = {};
return {
contains: function(key) {
return keys[key] === true;
},
add: function(key) {
if (keys[key] !== true)
{
keys[key] = true;
}
}
};
})();
var key = null;
for (var i = 0; i < arr.length; i++)
{
key = arr[i].firstName + ";" + arr[i].lastName;
if (!hash.contains(key))
{
hash.add(key);
}
}
确定您的数组中是否已有项目那么非常简单:
Finding out whether you already have an item in your array is then pretty simple:
hash.contains(key);
就是这样。比迭代整个数组快得多。特别是当它有很多项目时。
And that's it. Much faster than iterating over the whole array. Especially when it has many items.
这篇关于消除JSON对象中的重复项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!