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

我怎样才能更合理地将第一项数组连接到第二个数组的第一个,依此类推? 基本上自动化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 

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

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

如果数组具有相同的长度,则可以使用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]); 

使用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数组将包含每个集合的对象。