Dada una permutación basada en cero nums (0-indexado), construya una matriz ans de la misma longitud donde ans[i] = nums[nums[i]] para cada 0 <= i < nums.length y devuélvalo. Una permutación basada en cero nums es una matriz de enteros distintos de 0 a nums.length - 1 (inclusive). Ejemplo 1: Entrada: nums = [0,2,1,5,3,4] Salida: [0,1,2,4,5,3]
nums = [0,2,1,5,3,4] var buildArray = function(nums) { return nums.map(n => nums[n]); }; console.log(buildArray(nums))¿Alguien puede explicar la ejecución en seco de esto y por qué está dando salida como se muestra arriba y qué son los enteros distintos?
Tal vez este ejemplo lo ayude a comprender lo que sucede en el código. Todos los ejemplos producirán el mismo resultado. En el ejemplo que usa map , n es equivalente a nums[i] .
const nums = [0, 2, 1, 5, 3, 4]; // Using Array.map() var buildArray = function(nums) { return nums.map(n => nums[n]); }; console.log('Using Array.map() : ', buildArray(nums)) // Using Array.map() with index var buildArray2 = function(nums) { return nums.map((n, i) => nums[nums[i]]); }; console.log('Using Array.map() with index : ', buildArray2(nums)) // Using For Loop let ans = new Array(nums.length); for (let i = 0; i < nums.length; i++) { ans[i] = nums[nums[i]]; } console.log('Using for loop : ', ans);