Tratando de hacer coincidir cada elemento de una matriz con un conjunto de coordenadas en una matriz multidimensional de la siguiente manera:
array1= [0, 5, 4] array2 = [ {x: 1, y: 4, name: 'A', w: 0}, {x: 2, y: 8, name: 'E', w: 4}, {x: 3, y: 1, name: 'F', w: 5}];Espero hacer coincidir cada elemento de la matriz 1 con el valor de w en la matriz 2
0 -> {x: 1, y: 4, name: 'A', w: 0} 5 -> {x: 3, y: 1, name: 'F', w: 5} 4 -> {x: 2, y: 8, name: 'E', w: 4}Quiero regresar :
[ {x:1, y,4}, {x:3, y:1}, {x:3, y:1}, {x:2, y:8}, ... ];Puede encadenar el filtro de matriz y el mapa para hacer algo como esto
Array.prototype.filter() para filtrar todos los elementos según el índice de la primera matriz y
Array.prototype.map() para modificar el objeto y mostrar solo las coordenadas x e y
const array1 = [0, 5, 4]; const array2 = [ { x: 1, y: 4, name: "A", index: 0 }, { x: 2, y: 8, name: "E", index: 4 }, { x: 3, y: 1, name: "F", index: 5 }, ]; const newArr = array2.filter(x => array1.includes(x.index)).map(x => ({ x: xx, y: xy })); console.log(newArr)Debe devolver las coordenadas x e y requeridas como una matriz.
Por favor, encuentre un violín que funcione para eso.
const array1 = [0, 5, 4] const array2 = [ { x: 1, y: 4, name: 'A', w: 0 }, { x: 2, y: 8, name: 'E', w: 4 }, { x: 3, y: 1, name: 'F', w: 5 }, ]; const tempArray = array1.map((item) => array2.find((node) => node.w === item)); // console.log(tempArray); const finalArray = tempArray.map((currentNode, index, actualArray) => { const nextIndex = index === actualArray.length - 1 ? 0 : index + 1; return [ { x: currentNode.x, y: currentNode.y }, { x: actualArray[nextIndex].x, y: actualArray[nextIndex].y }, ]; }); console.log(finalArray);