我有一个函数,该函数从具有回调到一个变量(结果)的多个API获取信息:
function combineObjs(callback) {
function partialResult(results) {
callback(results);
};
searchFlickr.searchFlickr(searchTerm, searchCount, searchPage, partialResult);
searchUnsplash.searchUnsplash(searchTerm, searchCount, searchPage, partialResult);
}
combineObjs( function(results) {
console.log(results)
});
就获取数据而言,它似乎运行良好。但是,当从每个来源请求2个结果时,数据返回为:
[ { id: 'flkr-13545844805',
link: 'https://www.flickr.com/photos/28596055@N02/13545844805' },
{ id: 'flkr-3474831728',
link: 'https://www.flickr.com/photos/9848951@N06/3474831728' } ]
[ { id: 'us-fRPxHaHwWwk',
link: 'https://unsplash.com/photos/fRPxHaHwWwk' },
{ id: 'us-JXy99waA3Fo',
link: 'https://unsplash.com/photos/JXy99waA3Fo' } ]
我已经查过了用javascript合并数组的方法,但是我能找到的唯一信息是合并单独的数组,必须至少命名2个才能将一个数组推入另一个数组。由于我只有一个数组,因此这些方法不适用。
我也尝试过使用for Each循环来分隔每个花括号部分,但随后我还需要一种逗号分隔它们的方法,然后再将它们放入另一个数组。不确定最好的方法在这里。预先感谢您的任何帮助
最佳答案
据我了解,您可能需要执行Array.prototype.reduce。
const multilevel = [["a","b"], ["c","d"]];
const flat = multilevel.reduce(function(flat_array, current){
if(Array.isArray(current)) {
return [...flat_array, ...current];
} else {
return [...flat_array, current];
}
},[]); //["a","b","c","d"]
关于javascript - 合并存储在一个变量中的多个数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50686436/