var arr = [{ name: "John Doe" }, { name: "jamal" }, { name: "Badr" }, { name: "mohsen" }] arr.forEach((val) => { firstLetter = val.name.split(" ")[0].split("")[0]; }); for (var i = 0; i < arr.length; i++) { if (firstLetter == "J" || firstLetter == "j") { console.log("Goodbye " + arr[i].name); } else { console.log("Hello " + arr[i].name); }; };En su código, la firstLetter tiene solo el último valor en ella, ya que está m su valor. Cambia el código a:
var arr = [{ name: "John Doe" }, { name: "jamal" }, { name: "Badr" }, { name: "mohsen" }] const firstLetter = []; arr.forEach((val) => { firstLetter.push(val.name.split(" ")[0].split("")[0]); }); for (var i = 0; i < arr.length; i++) { if (firstLetter[i] === "J" || firstLetter[i] === "j") { console.log("Goodbye " + arr[i].name); } else { console.log("Hello " + arr[i].name); }; };Si entiendo correctamente, quiere decir "Adiós" + val.name para los nombres que comienzan con J o j (y "Hola" + val.name para los demás). No hay necesidad de hacer dos bucles para esto (haz el forEach o for ).
En cualquier caso, puede abordar el primer carácter del nombre como .name[0] y usar operadores de comparación o métodos de cadena para determinar si el nombre comienza con una J o una j .
Consulte el siguiente fragmento de código para ver un ejemplo de esto.
var arr = [{ name: "John Doe" }, { name: "jamal" }, { name: "Badr" }, { name: "mohsen" }]; arr.forEach((val) => { if (val.name[0] === "J" || val.name[0] === "j") { console.log("Goodbye " + val.name); } else { console.log("Hello " + val.name); } });No necesita otro ciclo después de forEach, lo que necesita es verificar si el nombre específico comienza con J/j
var arr = [{ name: "John Doe" }, { name: "jamal" }, { name: "Badr" }, { name: "mohsen" }] arr.forEach((val) => { firstLetter = val.name.split(" ")[0].split("")[0]; if (firstLetter == "J" || firstLetter == "j") { console.log("Goodbye " + val.name); } else { console.log("Hello " + val.name); }; });