我有一個數組x=[[3,1],[2,2]]
,我想將它變成x[3][1]=1
和x[2][2]=1
。該代碼還應該適用於更長的數組,如x=[[3,1],[2,12],[3,3]]
。將二維數組轉換爲一個稀疏數組陣列
-2
A
回答
0
您可以迭代並創建一個新數組(如果尚未)。然後將該值分配給給定的索引。
該解決方案需要一個新的數組作爲結果。
var x = [[3, 1], [2, 12], [3, 3]],
result = [];
x.forEach(function (a) {
result[a[0]] = result[a[0]] || [];
result[a[0]][a[1]] = 1;
});
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
1
假設你把兩個輸入:pos0
,pos1
for (i in x)
if (x[i][0] == pos0 && x[i][1] == pos1) {
// Do stuff
}
所以它基本上是檢查每個指標
0
你可以做如下:
var x = [[3,1],[2,12],[3,3]],
r = x.reduce((p,c) => (p[c[0]] ? p[c[0]][c[1]] = 1
: p[c[0]] = Array.from({[c[1]]: 1, length: c[1]+1}),
p),[]);
console.log(r);
0
const x = [[3,1], [2,2]]
console.log('x =', x)
// Initialize 1st dimension array
const y = []
for (let i in x) {
// Initialize the 2nd dimension array if not exist
y[x[i][0]] = y[x[i][0]] || []
// Assign the value to the sparse array
y[x[i][0]][x[i][1]] = 1
}
console.log('y =', y)
輸出:
x = [ [ 3, 1 ], [ 2, 2 ] ]
y = [ , , [ , , 1 ], [ , 1 ] ]
0
您可以使用array#reduce
通過您的數組進行迭代,並檢查數組存在對應的第一個值,如果它沒有初始化與[]
,然後將該值分配給該索引。
var x=[[3,1],[2,12],[3,3]];
var result = x.reduce((r,[a,b]) => {
r[a] = r[a] || [];
r[a][b] = 1;
return r;
},[]);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
相關問題
- 1. MATLAB:將兩個數組轉換爲稀疏矩陣
- 2. 將兩個一維數組轉換爲單個二維數組
- 3. 將二維數組轉換爲二維數組列表?
- 4. 將一個數據幀轉換爲矩陣或二維數組
- 5. 將二維數組轉換爲二維數組的多個塊
- 6. 將列表轉換爲稀疏矩陣
- 7. 將一維數組的索引轉換爲二維數組
- 8. 將二維數組轉換爲一維數組(有條件)
- 9. 將一維數組索引轉換爲二維數組索引
- 10. 將單個二維數組轉換爲多維數組
- 11. 如何將二維數組轉換成一個維數組
- 12. 轉換SciPy的稀疏矩陣元組
- 13. 的JavaScript:轉換一個多維數組爲二維數組
- 14. 轉換爲二維數組
- 15. 轉換兩個一維數組到一個二維數組
- 16. 將一維數組爲二維數組
- 17. 將稀疏矩陣(dgCMatrix)轉換爲realRatingMatrix
- 18. 如何使用特徵庫將大型二維數組轉換爲稀疏矩陣?
- 19. 轉換二維數組多維數組
- 20. 將多維數組列表轉換爲單個多維數組?
- 21. 將二維numpy數組轉換爲三維數組
- 22. 在python中將二維數組轉換爲三維數組
- 23. 將二維數組轉換爲指針
- 24. 如何一維數組轉換爲二維數組在C#
- 25. 字符串轉換的一維數組爲二維數組
- 26. 一維數組轉換爲二維數組,使用Javascript
- 27. 從二維數組轉換某些值一個維數組
- 28. Scipy稀疏...數組?
- 29. 如何將一維數組從數字轉換爲二維數組?
- 30. 將陣列數組轉換爲矩陣
你的術語是錯誤的。 'x = [[3,1],[2,2]] * *是一個二維數組。你要求的是將一個數組數組轉換爲一個稀疏的數組數組。 –
「數組陣列」是一個二維數組 –
仍然可以將[[3,1],[2,2]]轉換爲x [3] [1]和x [2] [2] –