Estoy tratando de crear una fórmula para Google Sheets usando Google Script, tengo dos matrices, algo como esto:
y me gustaría hacer algunos cálculos (ejemplo: multiplicar por 2) solo sobre el "Verdadero" correspondiente. Primero traté de crear un método zip para convertir ambas matrices en una matriz 2D:
const zip = (a1, a2) => a1.map((x, i) => [x, a2[i]]);
Funcionó, pero dado que la documentación de Google dice que usar "mapa" es la mejor manera de crear fórmulas, ¿cómo puedo usar el mapa para repasar la nueva matriz 2D, devolver 0 cuando es "falso" y hacer mi cálculo cuando es " verdadero"?
Documentación de Google sobre el uso del mapa de métodos: https://developers.google.com/apps-script/guides/sheets/functions
No necesita crear el mapa zip que está creando arriba, siempre que ambas matrices tengan la misma longitud, puede mapear a través de la primera matriz, luego acceder al índice actual de la segunda matriz y verificar si es cierto en esta ubicación , si se ejecuta la operación matemática (que almacené dentro de una función), si es falso, coloque 0 en su lugar. Vea abajo:
const arr1 = [1000, 2000, 3000, 4000]; const arr2 = [true, false, true, true]; function whatYouWantToDo(x) { return x * 2; } console.log(arr1.map((x, i) => [arr2[i] ? whatYouWantToDo(x) : 0])); var Arr1 = [1000,2000,3000,4000]; var Arr2 = [true,false,false,true]; console.log(Arr1.map((value, index) => value + (value * Number(Arr2[index]))));