[英]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.