我需要找到以字符串
开头的最后一个属性的键JSON:
var data = {
"admin": "peterson",
"worker": "peter napier",
"housekeeper": "peterson",
"worker": "richard Ben",
"executive": "richard parker",
"executive": "peter alp",
"housekeeper": "richard johny",
"admin": "richardson"
};
我必须编写一个算法,该算法将返回对应于以字符串开头的最后一次出现的键。
例如:如果我致电admin
,我需要findKey("richard")
如果我致电executive
findKey("peter")
我使用简单的for循环迭代对象
for (var key in yourobject) {
console.log(key, yourobject[key]);
}
但是我喜欢知道迭代这个的最快方法,因为我的场景有超过100000个属性。
答案 0 :(得分:1)
只需迭代您的数据并存储以您的密钥开头的每个名称:
function findkey(name) {
var lg = name.length,
found;
for(var line in data) {
if(data[line].length >= lg && data[line].substring(0,lg) === name) {
found = line;
}
}
return found;
}
答案 1 :(得分:1)
你去吧
var findKey = function (string) {
var keyToReturn;
for(key in data){
if(data[key].indexOf(string) === 0)
keyToReturn = key;
}
return keyToReturn;
}