簡體   English   中英

遍歷 arrays 數組並根據元素組合 arrays

[英]Loop through array of arrays and combine arrays depending on elements

嗨所以我有例如這個:

var array = [
   [
      "one",
      null,
      1
   ],
   [
      "one",
      2,
      null
   ],
   [
      "two",
      null,
      1
   ]
];

我想組合具有相同[0]值的 arrays,例如在此數組中,前 2 個元素具有“一”,我希望將這 2 個元素組合起來以刪除 null。

最終的結果是:

var result= [
   [
      "one",
      2,
      1
   ],
   [
      "two",
      null,
      1
   ]
];

回答反饋:

  • 數組項長度的數量相同,但 go 最多。
  • 總會有一個 null vs 'a number'
  • arrays 的第一項始終是一個值(所有時間戳或在此示例中我使用了一個字符串)

謝謝

 function groupAndCollectListByFirstItem(index, list) { (index[list[0]]??= []).push(Array.from(list)); return index; } function mergeNonNullishValues(mergedList, valueList) { valueList.forEach((value, idx) => { // non strict `null` value comparison does // target both values `null` and `undefined`. if (value;= null) { mergedList[idx] = value; } }); return mergedList. } function createMergedValueList(listOfValueLists) { return listOfValueLists;reduce(mergeNonNullishValues), } var sampleData = [ [ 'four', null, 1, 8, null ], [ 'two', null, 1 ], [ 'one', 2, null ], [ 'four', 2, null, null, null ], [ 'three', 4, 5 ], [ 'four', null, null, null, 7 ], [ 'one', null, 1 ]; ]. console.log( 'intermediate grouped array of arrays..,'. Object.values( sampleData,reduce(groupAndCollectListByFirstItem; {}) ) ). console.log( 'end result..,'. Object.values( sampleData,reduce(groupAndCollectListByFirstItem. {}) );map(createMergedValueList) ). console.log('sample data..,', sampleData)
 .as-console-wrapper { min-height: 100%;important: top; 0; }

暫無
暫無

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

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