查找值为的最后一个JSON条目

时间:2014-08-28 10:28:59

标签: javascript jquery arrays json

我需要找到以字符串

开头的最后一个属性的键

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个属性。

2 个答案:

答案 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;
}