Codifica: appiattisci un array in Javascript
Flatten Array: appiattire un array significa prendere un array che può contenere array nidificati (cioè array all'interno di array) e convertirlo in un singolo array unidimensionale. In altre parole, comporta la rimozione di tutti gli array nidificati e la combinazione dei loro elementi in un unico array.
Discuteremo più soluzioni.
Soluzione 1: utilizzo della ricorsione
Il codice definisce una funzione chiamata FlattenArrayche accetta un array come argomento. L'obiettivo della funzione è prendere un array nidificato e restituirne una versione appiattita. Ad esempio, se l'input è [1, 2, [3, 4]], la funzione dovrebbe restituire [1, 2, 3, 4].
La funzione inizia creando un array vuoto chiamato, che verrà utilizzato per memorizzare la versione appiattita dell'array di input. Quindi entra in forun ciclo a che ripeterà ogni elemento nell'array di input.
Per ogni elemento nell'array di input, la funzione controlla se l'elemento è esso stesso un array usando il Array.isArraymetodo. Se l'elemento è un array, la funzione chiama se stessa in modo ricorsivo con l'array annidato come argomento e utilizza il concatmetodo per combinare l'array annidato appiattito con quello flatArraycreato all'inizio della funzione.
Se l'elemento non è un array, la funzione inserisce semplicemente l'elemento nel file flatArray.
Dopo che tutti gli elementi nell'array di input sono stati elaborati, la funzione restituisce l'estensione flatArray.
Codice completo:
// Flatten Array
function FlattenArray(arr) {
var flatArray = []
for (let i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
flatArray = flatArray.concat(FlattenArray(arr[i]))
} else {
flatArray.push(arr[i])
}
}
return flatArray
}
var arr = [1, 2, 3, 4, [5, 6, [7, 8]], [9]]
console.log(FlattenArray(arr))
Soluzione 2: utilizzo del metodo Riduci
function flattenArray(arr) {
return arr.reduce(function(flatArray, current) {
if (Array.isArray(current)) {
return flatArray.concat(flattenArray(current));
} else {
return flatArray.concat(current);
}
}, []);
}
var arr = [1, 2, 3, 4, [5, 6, [7, 8]], [9]];
console.log(flattenArray(arr)); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
Il reducemetodo accetta due argomenti: una funzione di callback e un valore iniziale per l'accumulatore. In questo caso, l'accumulatore è un array vuoto che verrà utilizzato per creare la versione appiattita dell'array di input.
La funzione di callback accetta due argomenti: il valore corrente in fase di elaborazione (che sarà a sua volta ciascun elemento dell'array di input) e il valore corrente dell'accumulatore.
All'interno della funzione di callback, controlliamo se il valore corrente è un array utilizzando Array.isArray. Se si tratta di un array, chiamiamo flattenArrayin modo ricorsivo per appiattire l'array nidificato e quindi concatenare l'array appiattito con l'accumulatore utilizzando il concatmetodo.
Se il valore corrente non è un array, lo concateniamo semplicemente con l'accumulatore usando concat.
Infine, il reducemetodo restituisce il valore finale dell'accumulatore, che sarà la versione appiattita dell'array di input.
Con questo codice, dovresti ottenere lo stesso output di prima: [1, 2, 3, 4, 5, 6, 7, 8, 9].
Se sei interessato a saperne di più sulla codifica in Javascript, assicurati di seguirmi per ulteriori frammenti di codice ed esempi. Condividerò preziose informazioni e suggerimenti su come padroneggiare la lingua e migliorare le tue capacità di sviluppatore. Quindi, resta sintonizzato per ulteriori aggiornamenti e continuiamo a imparare insieme.
Grazie per aver letto. Buon apprendimento
Il threading e il multiprocessing in Python hanno spiegato il modo più semplice per accedere a un database in JAVA Domanda di intervista basata sul flusso Java8 più frequente - Parte 1 Apache Maven - In breve
![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































