我有以下陣列組陣列由偏移
["M", "A", "M", "I", "M", "P"]
這些代表兩個人三個不同的問題的答覆。我希望能夠將索引[0,3],[1,4]和[2,5]分組。
在這些相同的六個回答可能是三個人回答兩個不同問題的情況下。在這種情況下,我希望能夠通過索引[0,2,4]和[1,3,5]對它們進行分組。
我在這個項目中使用Underscore,所以一個香草JS或Underscore解決方案將做的伎倆!
我有以下陣列組陣列由偏移
["M", "A", "M", "I", "M", "P"]
這些代表兩個人三個不同的問題的答覆。我希望能夠將索引[0,3],[1,4]和[2,5]分組。
在這些相同的六個回答可能是三個人回答兩個不同問題的情況下。在這種情況下,我希望能夠通過索引[0,2,4]和[1,3,5]對它們進行分組。
我在這個項目中使用Underscore,所以一個香草JS或Underscore解決方案將做的伎倆!
您可以使用Array.from()
構建陣列和內部需要從兩個迭代索引,所以你可以使用i + (n * j)
var arr = ["M", "A", "M", "I", "M", "P"]
function group(arr, n) {
var part = Math.ceil(arr.length/n);
return Array.from(Array(n), function(e, i) {
return Array.from(Array(part), function(a, j) {
return arr[i + (n * j)]
})
})
}
console.log(group(arr, 3))
console.log(group(arr, 2))
使用Array#filter
:
const array = ["M", "A", "M", "I", "M", "P"];
const group = (arr, n) => [...Array(n)].map(
(_, i) => arr.filter((_, j) => (j - i) % n === 0)
);
console.log(group(array, 2));
console.log(group(array, 3));
你可以發表一些更多的例子,說明輸入是什麼以及你想要的結果是什麼?你有沒有嘗試過接近? – Phix
所以告訴我們你試過了什麼。 Stackoverflow不是免費的代碼寫入服務。還提供[mcve] – charlietfl