Si j'ai un tableau unidimensionnel: P>
et j'ai déjà un tableau à deux dimensions 3x3 avec la bonne quantité de créneaux à employer pour adapter les chiffres p>
... Comment puis-je correspondre aux nombres Onedimarray dans le Twodimarray, comme: p>
? p>
Je sais que je peux le faire avec un couple de boucles imbriquées, mais y a-t-il un moyen plus simple et fonctionnel de le faire? P> oneedimarray = [1,2,3,4,5,6,7,8,9] code> p>
Twodimarray = [[0,0,0], [0,0,0], [0,0,0]] code> p>
[[1,2,3], [4,5,6], [7,8,9]] code> p>
4 Réponses :
Voici une façon de le faire. Faites un itérateur de votre réseau unidimensionnel, puis utilisez Sortie forte> P> mappe code> et compactmap code> avec .nsext () code> pour remplacer les valeurs du Twodimarray CODE> Pour créer le Newarray:
[["a"], ["b", "c"], ["d", "e", "f"], ["g", "h", "i", "j"]]
Vous pouvez boucler sur l'index et la valeur en utilisant énuméré code>, puis calculez la bonne postion en utilisant% et /
var index = 0
twoDimArray.indices.forEach { (outerInd) in
twoDimArray[outerInd].indices.forEach { (innerInd) in
twoDimArray[outerInd][innerInd] = oneDimArray[index]
index += 1
}
}
for i in twoDimArray.indices {
for j in twoDimArray[i].indices {
twoDimArray[i][j] = oneDimArray.removeFirst();
}
}
Voir " Expliquer des réponses entièrement basées sur un code ". Bien que cela puisse être techniquement correct, cela n'explique pas pourquoi il résout le problème ou devrait être la réponse sélectionnée. Nous devrions éduquer en plus d'aider à résoudre le problème.
(Pas familier avec Swift) Vous devriez pouvoir faire un
Réduire le fonctionnement code> ou même un algorithme récursif. Je ne sais pas quel est le meilleur outil Swift pour ceux-ci. Si vous connaissez le nombre exact de machines à sous et qu'ils suivent un motif, vous pouvez dériver des emplacements mathématiquement et le faire dans une boucle droite:theedimarray [i / 3] [i% 3] = onedimarray [i] code> (où/ code> effectue une division entière).Pourquoi appelez-vous un tableau 2 dimensionnel
theedimarray code>?Bon point @martinr - Mise à jour