Ich habe ein Array von x=[[3,1],[2,2]]
und ich möchte es in x[3][1]=1
und x[2][2]=1
drehen. Der Code sollte auch für längere Arrays wie x=[[3,1],[2,12],[3,3]]
funktionieren.Ein 2D-Array in ein spärliches Array von Arrays
-2
A
Antwort
0
Sie könnten iterieren und ein neues Array erstellen, wenn nicht bereits. Weisen Sie den Wert dann dem angegebenen Index zu.
Diese Lösung nimmt ein neues Array für das Ergebnis.
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
Angenommen, Sie nehmen zwei Eingänge: pos0
, pos1
for (i in x)
if (x[i][0] == pos0 && x[i][1] == pos1) {
// Do stuff
}
es also im Grunde jeden Index überprüft
0
Sie wie folgt tun können;
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)
Ausgang:
x = [ [ 3, 1 ], [ 2, 2 ] ]
y = [ , , [ , , 1 ], [ , 1 ] ]
0
Sie können array#reduce
können Sie durch Ihre Array zu durchlaufen und überprüfen, ob das Array zum ersten Wert entsprechend existieren, falls es ist nicht initialisieren mit []
und weisen Sie dann den Wert diesem Index zu.
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; }
Verwandte Themen
- 1. Objekt zu Array (ein Array von Arrays)
- 2. Sortierung ein Array von Arrays in Ruby
- 3. MongoDB Abfrage in ein Array von Arrays
- 4. ein Array von Arrays in MongoDB Abfragen
- 5. Rubin: Karte Array von Strings in ein Array von Arrays
- 6. Spärliches Skalarprodukt in SQL
- 7. Enum Typ 2Darray Labyrinth
- 8. Ordnen Sie ein Array von Arrays zu
- 9. C# ein Array von Arrays erstellen
- 10. jQuery Ein Array von Arrays suchen?
- 11. Wie erstellt man ein Array von Arrays
- 12. Zugriff auf ein Array von Arrays Java
- 13. PInvoke ein Array von einem Byte Arrays
- 14. Lodash Schleife durch ein Array von Arrays
- 15. Übergeben von Arrays in ein Array von Zeigern in C
- 16. Mehrere Arrays in ein Array verschachteln
- 17. Splitting ein Array in zwei Arrays C#
- 18. Aggregate mehrere Arrays in ein Array (Linq)
- 19. Splitting ein NumPy Array in zwei Arrays
- 20. Python: ein einzelnes Array von sortierten, wiederholten Werten in ein Array von Arrays umwandeln?
- 21. Kann ich ein Array von Strings in ein Array von Substring-Arrays umwandeln?
- 22. Wie 2-Arrays verbinden - Nest ein Array in ein anderes
- 23. Split ein Array in mehrere Arrays
- 24. Ein Array in 3 einzelne Arrays teilen
- 25. Swift: passen zwei Arrays in ein Array
- 26. Sortieren ein Array von Arrays von verschiedenen Indizes in C
- 27. Elegante Möglichkeit, eine Reihe von Array Arrays in ein Javascript Array von Arrays zu konvertieren?
- 28. Zugriff auf Elemente eines 2Darray in Matlab
- 29. JavaScript: Konvertieren Sie ein Array von Arrays, die Zeichenfolgen in ein Array von Arrays, die Objekte enthalten
- 30. Wie wird ein Array mit einem Array von Arrays verglichen?
Ihre Terminologie ist falsch. 'x = [[3,1], [2,2]]' * ist * ein 2D-Array. Was Sie verlangen, ist ein Array von Arrays in ein Sparse-Array von Arrays zu konvertieren. –
Ein "Array von Arrays" ist ein 2D-Array –
Es ist immer noch möglich, die [[3,1], [2,2]] zu x [3] [1] und x [2] [2] –