我正在制作一个需要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);