JavaScript高级对象键



我正在制作一个需要Advanced object.keys()的chrome应用程序,我似乎在任何地方都找不到。这是我的一些代码。

Dictionary = {
  C: {
    "calculation": {"definitions":["a process or result of calculating 
    something.", "careful thought and planning that is done usually for 
    selfish reasons.]}
  },
  Search: function(word) {
    var foundWordInfo = {Word:null, Definitions:[]};
    var allDictionaryKeys = Object.keys(Dictionary);
    var firstLetter = word.charAt(0).toUpperCase();
    var letterIndex = allDictionaryKeys.indexOf(firstLetter);
    var wordKeys = Object.keys(Dictionary[firstLetter]);
    for(i=0; i<wordKeys.length; i++) {
      if (wordKeys[i] == word) {
        foundWordInfo.Word = wordKeys[i];
        break;
      } else {}
    }
    return foundWordInfo;
};

它的工作方式是您使用

var search = Dictionary.Search("calculation");

搜索变量等于词典。

搜索变量确实会返回单词,但是定义总是以未定义或无效的方式返回。我尝试了

之类的东西
var definitions = wordKeys[i].Definitions;

var definitions = Dictionary[letterIndex][wordKeys[i]].Definitions;

但是到目前为止,我没有使用过。我更喜欢

var definitions = wordKeys[i].Definitions;

但是截至目前,我将使用我能得到的东西。任何帮助都将受到赞赏。谢谢。

您可以使用Dictionary[firstLetter][wordKeys[i]].definitions

访问definitions单词

var Dictionary = {
  C: {
    "calculation": {"definitions":["a process or result of calculating something.", "careful thought and planning that is done usually for selfish reasons."]}
  },
  Search: function(word) {
    var foundWordInfo = {Word:null, Definitions:[]};
    var allDictionaryKeys = Object.keys(Dictionary);
    var firstLetter = word.charAt(0).toUpperCase();
    var wordKeys = Object.keys(Dictionary[firstLetter]);
    for(i=0; i< wordKeys.length; i++) {
      if (wordKeys[i] == word) {
        foundWordInfo.Word = wordKeys[i];
        foundWordInfo.Definitions = Dictionary[firstLetter][wordKeys[i]].definitions;
        break;
      } else {}
    }
    return foundWordInfo;
}
}
var search = Dictionary.Search("calculation");
console.log(search);

另外,您可以这样做。

var Dictionary = {
  C: {
    "calculation": {"definitions":["a process or result of calculating something.", "careful thought and planning that is done usually for selfish reasons."]}
  },
  Search: function(word) {
    var foundWordInfo = {Word:null, Definitions:[]};
    var firstLetter = word.charAt(0).toUpperCase();
    foundWordInfo.Word = Object.keys(Dictionary[firstLetter]).find(function(key) {
      return key === word;
    }) || null;
    if(foundWordInfo.Word)
      foundWordInfo.Definitions = Dictionary[firstLetter][word].definitions;
    return foundWordInfo;
}
}
var search = Dictionary.Search("calculation");
console.log(search);

最新更新