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