我有以下数据集
data=[{name: "hk", age:21, gender:"M"}, {name: "kk", age:31, gender:"M"},{name: "tk", age:11, gender:"F"}]
Run Code Online (Sandbox Code Playgroud)
我怎样才能测试"hk"找到的对象是否有人名和索引.
我已经检查了以下代码,但它不起作用.
data.hasOwnProperty("hk")
Run Code Online (Sandbox Code Playgroud)
尝试(如indexOf):
var data=[{name: "hk", age:21, gender:"M"}, {name: "kk", age:31, gender:"M"},{name: "tk", age:11, gender:"F"}]
function exists(name){
var item, i = 0;
while(item = data[i++])
if(item.name == name) return --i
return -1
}
alert("Exists tk? - Index: " + exists("tk")); //-1: not existsRun Code Online (Sandbox Code Playgroud)
您必须遍历数组并检查每个对象
function hasName(prop, value, data) {
return data.some(function(obj) {
return prop in obj && obj[prop] === value;
});
}
Run Code Online (Sandbox Code Playgroud)
如果您想返回索引,则必须使用一个循环来跟踪索引,forEach例如
function hasName(prop, value, data) {
var result = -1;
data.forEach(function(obj, index) {
if (prop in obj && obj[prop] === value) {
result = index;
return false;
}
});
return result;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1918 次 |
| 最近记录: |