Javascript 为什么';这个对api的调用不适用于3个字母的单词吗?
所以每次我运行这个,arrayOfWords有3个字母的单词,这个函数就不起作用了,我也不知道为什么。JSON对象看起来非常好,但它没有通过if语句。任何关于如何解决这一问题的见解都将不胜感激Javascript 为什么';这个对api的调用不适用于3个字母的单词吗?,javascript,jquery,json,Javascript,Jquery,Json,所以每次我运行这个,arrayOfWords有3个字母的单词,这个函数就不起作用了,我也不知道为什么。JSON对象看起来非常好,但它没有通过if语句。任何关于如何解决这一问题的见解都将不胜感激 function createAdjectives() { var arrayOfWords = $('#inputTerms').val().split('\n'); alert(arrayOfWords); for (var i = 0; i <
function createAdjectives() {
var arrayOfWords = $('#inputTerms').val().split('\n');
alert(arrayOfWords);
for (var i = 0; i <= arrayOfWords.length-1; i++) {
$.getJSON("http://words.bighugelabs.com/api/2/mykey/"+arrayOfWords[i]+"/json?callback=?",
function(json) {
if(json['adjective']['syn'])
{
for (var i = 0; i < json['adjective']['syn'].length-1; i++) {
adjectiveArray.push(json['adjective']['syn'][i]);
}
}
if(json['adjective']['sim'])
{
for (var i = 0; i < json['adjective']['sim'].length-1; i++) {
adjectiveArray.push(json['adjective']['sim'][i]);
}
}
alert("got here");
if(json['noun']['syn'])
{
for (var i = 0; i < json['noun']['syn'].length-1; i++) {
nounArray.push(json['noun']['syn'][i]);
}
}
if(json['noun']['sim'])
{
for (var i = 0; i < json['noun']['sim'].length-1; i++) {
nounArray.push(json['noun']['sim'][i]);
}
}
alert(adjectiveArray);
alert(nounArray);
});
}
}
在这种特殊情况下(可能与您使用3个字母单词测试的所有时间相关,也可能与此无关),问题可能是您试图访问json
结果对象中形容词
对象的syn
属性,但没有形容词
对象
您可能只需要另一层
if
语句来验证形容词
、名词
等是否存在,然后再尝试检查形容词
中的syn
和sim
属性等。使用3个字母单词运行函数时会出现什么错误?没有错误,只是不运行。我的一个朋友收到了错误“无法读取未定义的属性”syn“。我认为Cberube的回答会解决这个问题。根据我使用JSON的经验,当没有对象时,JSON会用null
?({"noun":{"syn":["tally","test","trial","footrace","foot race","streak","running","running play","running game","rivulet","rill","runnel","streamlet","political campaign","campaign","ladder","ravel","discharge","outpouring","attempt","chronological sequence","chronological succession","damage","effort","endeavor","endeavour","flow","flowing","football play","harm","impairment","indefinite quantity","liberty","locomotion","period","period of time","race","score","sequence","stream","succession","successiveness","time period","travel","trip","try","watercourse"]},"verb":{"syn":["run","scat","scarper","turn tail","lam","run away","hightail it","bunk","head for the hills","take to the woods","escape","fly the coop","break away","go","pass","lead","extend","operate","flow","feed","course","function","work","range","campaign","play","tend","be given","lean","incline","prevail","persist","die hard","endure","execute","carry","guide","draw","black market","bleed","run for","consort","ply","hunt","hunt down","track down","race","move","melt","melt down","ladder","unravel","accompany","accomplish","action","apply","be","become","break","break up","bring home the bacon","broadcast","capture","carry out","carry through","catch","change","circularise","circularize","circulate","come apart","come through","compete","contend","continue","deliver the goods","diffuse","direct","disintegrate","disperse","displace","disseminate","dissolve","distribute","enforce","fall apart","fan out","free","fulfil","fulfill","get","go across","go away","go forth","go through","hurry","implement","incur","jaunt","last","leave","liberate","locomote","loose","make pass","merchandise","occur","pass around","process","propagate","release","resolve","sail","separate","speed","split up","spread","spread out","succeed","trade","travel","travel rapidly","treat","trip","unloose","unloosen","vie","win","zip"],"ant":["idle","malfunction"],"rel":["run away","extend to","flow from","pass around","pass over","run along","run around","run off","run over"]}});