Concat第一项数组到第二个数组JavaScript的第一个itiem

时间:2016-04-18 16:48:38

标签: javascript jquery arrays json

如何更合理地将第一项数组连接到第二个数组的第一个,依此类推?基本上自动化console.log这里是代码:

$("button#search").on("click", function(){
var inputVal = $("input#text").val();
$.getJSON("https://en.wikipedia.org/w/api.php?action=opensearch&search=" + inputVal +"&limit=5&namespace=0&format=json&callback=?", function(json) {
    var itemName = $.each(json[1], function(i, val){    
    })
    var itemDescription = $.each(json[2], function(i, val){ 
    })
    var itemLink = $.each(json[3], function(i, val){
    })
    console.log(itemName[0] + " " + itemDescription[0] + " " + itemLink[0]);
    console.log(itemName[1] + " " + itemDescription[1] + " " + itemLink[1]);
    console.log(itemName[2] + " " + itemDescription[2] + " " + itemLink[2]);
    console.log(itemName[3] + " " + itemDescription[3] + " " + itemLink[3]);
    console.log(itemName[4] + " " + itemDescription[4] + " " + itemLink[4]);
    })//EOF getJSON
});//EOF button click

3 个答案:

答案 0 :(得分:1)

我相信这就是你要找的东西:

for (var i = 0; i < itemName.length; i++) {
  console.log(itemName[i] + " " + itemDescription[i] + " " + itemLink[i]); 
}

答案 1 :(得分:1)

如果数组长度相同,则可以使用map

var result = $.map(json[1], function(i, val){
    var row = val + " " + json[2][i] + " " + json[3][i];
    console.log(row);
    return row;
}

您也可以稍后使用result,例如

console.log(result[0]);

答案 2 :(得分:0)

使用es6,您可以执行以下操作:

(在你的getJson回调中):

function (json) {
    const [value, optionsJ, descriptionsJ, linksJ] = json;
    let whatIwant = [];

    // choose one to loop through since you know they will all be the same length:
    optionsJ.forEach(function (option, index) {
        whatIwant.push({option: option, description: descriptionJ[index], link: linksJ[index]});
    });

    // use whatIwant here**
}

然后,您的新whatIwant数组将包含每个集合的对象。