Aquí hay un objeto de 3 formularios formA, formB, formC en el que form A y B son objetos y formC es una matriz de objetos que pueden tener múltiples objetos
const object: { "formA": { "details": {}, "isRouteUser": false, "province": "ON", "prelabel": 10, "users": [ { "age": 0 } ] }, "formB": { "line11": 0, "line12": 0, "line150_1": 0 }, "formC": [ { "price": 0, "details": [ { "subItemPrice": 0 } ] } ] }Estoy usando la función para encontrar el valor de los campos dentro de los formularios.
const getValue = (object, keys) => keys.split('.').reduce((o, k) => (o || {})[k], object); const key1 = formB.line11 const key2 = formC[0].price const key3 = formC[0].details[0].subItemPriceEstoy usando esta función para obtener el valor.
const formValue = getValue(object,key1)caso 1: la tecla 1 funcionó bien
caso 2: key2: funciona en el índice seleccionado, debería funcionar para cada índice de la matriz
caso 3: key3 - falló
reduce() itera a través de la lista de elementos de la matriz y ejecuta la función de devolución de llamada después de cada iteración, es decir, devuelve el resultado de la iteración anterior como argumento para la próxima iteración. La función Reducir da un único valor como resultado final.
const numbers = [5, 10, 15]; document.getElementById("demo").innerHTML = numbers.reduce(sumOfNumbers); function sumOfNumbers(total, num) { return total + num; } <!DOCTYPE html> <html> <body> <p>Sum of numbers in an array</p> <p id="demo"></p> </body> </html>Aquí, inicialmente, los números [0] se pasan a la función y se verifica el resultado anterior, si no se encuentra ningún resultado, devuelve números [0] como resultado.
En la siguiente iteración, se llama a sumOfNumbers(5, 10). Aquí, 5 es el resultado de la iteración anterior y 10 es el segundo elemento de la matriz.
Finalmente, reduce() itera cada elemento en una matriz y devuelve un único valor como resultado final. En este caso, el resultado final es la suma de los elementos de la matriz.