[
{
"lastName": "Seymour",
"gender": "Female",
"patientID": 18134,
"firstName": "Stephanie",
"age": "111Y"
},
{
"lastName": "Seymour",
"gender": "Female",
"patientID": 18134,
"firstName": "Stephanie",
"age": "111Y"
}
]
Run Code Online (Sandbox Code Playgroud)
如何在添加是否包含此值之前检查我的json ...
Rob*_*nik 14
最明显的方法是使用for循环并迭代数组中的所有项目,并在每次想知道您是否已经有特定项目时进行比较.琐碎,但乏味,特别是当你有许多比较.
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;
};
Run Code Online (Sandbox Code Playgroud)
每当您要搜索现有对象时:
contains(arr, newObj);
Run Code Online (Sandbox Code Playgroud)
此代码使用Javascript的功能,其原型可用作某种关联内存存储中的数组.假设您的JSON项目在arr变量中.定义比较密钥(说出它的名字和姓氏):
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);
}
}
Run Code Online (Sandbox Code Playgroud)
找出你的数组中是否已经有一个项目非常简单:
hash.contains(key);
Run Code Online (Sandbox Code Playgroud)
就是这样.比迭代整个数组快得多.特别是当它有很多项目时.
| 归档时间: |
|
| 查看次数: |
9619 次 |
| 最近记录: |