簡體   English   中英

將 object 中的所有數組合並為一個數組。

[英]Combine all arrays in object into one array.

我正在為 Google chrome 開發一個擴展,我想將某個對象中的所有數組合並到一個數組中,而不是將它們拆分。 所以現在,我的控制台 o

chrome.storage.sync.get(null, function(all) {
// this returns everything in chrome's storage. 
}

在我的控制台中看起來像這樣:

在此處輸入圖片說明

但是,我希望它實際上將所有數組合並為一個,如下所示:

目的

feed_0:數組[364]

我試過這個:

    chrome.storage.sync.get(null, function(all) {
  var test = {}; test = all;
  delete test['currently.settings'];

console.log(test);

var alpha = [];

var result = 0;
  for(var prop in test) {
    if (test.hasOwnProperty(prop)) {
       var second = alpha.concat(prop);

      console.log(second);
    // or Object.prototype.hasOwnProperty.call(obj, prop)
      result++;
    }
  }

   });

但這會返回:

在此處輸入圖片說明

以下是如何從all對象中獲取一個數組:

var test = Object.values(all).flat();

在不支持這些功能的舊 JavaScript 版本中,請選擇:

var test = Object.keys(all).reduce( (acc, a) => acc.concat(all[a]), [] );

將它分配給一個feed_0屬性,當然不是難事:

test = { feed_0: test };

您可以使用Object.keysArray#reducefeed_N數組合並為一個屬性:

 var data = { feed_0: [0, 1, 2], feed_1: [3, 4, 5], feed_2: [6, 7, 8], feed_3: [9, 10, 11] } data = Object.keys(data).reduce(function(result, k) { [].push.apply(result.feed_0, data[k]) return result }, { feed_0: [] }) console.log(data)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM