我有一个函数,该函数从具有回调到一个变量(结果)的多个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/

10-10 18:25
查看更多