1

所以每次我运行这个并且 arrayOfWords 有 3 个字母的单词时,这个函数不起作用,我不知道为什么。JSON 对象看起来非常好,但它没有通过 if 语句。任何有关如何解决此问题的见解将不胜感激。

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

“运行”一词的 JSON 对象

?({"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"]}});
4

1 回答 1

2

在这种特殊情况下(可能与您使用 3 个字母单词测试的所有时间相关,也可能不相关),看起来问题可能是您试图访问结果对象中对象的syn属性,但是不是对象。adjectivejsonadjective

您可能只需要另一层if语句来验证 ,adjective等是否noun存在,然后再尝试检查内部的synandsim属性adjective等。

于 2013-06-28T19:35:55.290 回答