簡體   English   中英

JavaScript高級對象鍵

[英]JavaScript Advanced Object Keys

我正在制作一個Chrome應用,該應用需要在任何地方都找不到的高級Object.keys()。 這是我的一些代碼。

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");

其中搜索變量等於Dictionary.Search foundWordInfo對象。

搜索變量確實返回單詞,但定義始終返回為undefined或null。 我已經嘗試過類似的事情

var definitions = wordKeys[i].Definitions;

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

但到目前為止我沒有用過。 我更喜歡這樣的東西

var definitions = wordKeys[i].Definitions;

但截至目前,我將盡我所能。 任何幫助表示贊賞。 謝謝。

您可以使用Dictionary[firstLetter][wordKeys[i]].definitions訪問單詞definitions Dictionary[firstLetter][wordKeys[i]].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); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM