¿Cómo crear un objeto a partir de dos arrays en JavaScript?

Dadas dos arrays, la tarea es crear un objeto a partir de ellas, donde la primera array contiene las claves del objeto y la segunda array contiene los valores del objeto. Devuelve nulo si las longitudes de la array no son las mismas o si las arrays están vacías. Un ejemplo de este problema en la vida real es, por ejemplo, que tiene una array de números de estudiantes y una array de nombres de estudiantes que están en el mismo orden, y desea crear un objeto para que pueda acceda fácilmente al nombre del estudiante usando el número de lista.

Ejemplo:

Input:
Array 1 =>  [1, 2, 3, 4]
Array 2 =>  ["ram", "shyam", "sita", "gita"]

Output:
{
  1: "ram",
  2: "shyam",
  3: "sita",
  4: "gita"
}

Para resolver este problema tenemos los siguientes enfoques:

Ejemplo 1: Uso del ciclo for-each.

Javascript

let a = [1, 2, 3, 4];
let b = ["ram", "shyam", "sita", "gita"]
  
// Checking if the array lengths are same 
// and none of the array is empty
 function convertToObj(a, b){
  if(a.length != b.length || a.length == 0 || b.length == 0){
   return null;
  }
  let obj = {};
    
// Using the foreach method
  a.forEach((k, i) => {obj[k] = b[i]})
  return obj;
}
console.log(convertToObj(a, b))

Producción:

{
  1: "ram",
  2: "shyam",
  3: "sita",
  4: "gita"
}

Ejemplo 2: Usar el método Object.assign.

Javascript

let a = [1, 2, 3, 4];
let b = ["ram", "shyam", "sita", "gita"]
  
// Checking if the array lengths are same 
// and none of the array is empty
 function convertToObj(a, b){
  if(a.length != b.length || a.length == 0 || b.length == 0){
    return null;
  }
   
// Using Object.assign method
  return Object.assign(...a.map((k, i)=>({[k]: b[i]}) ))
}
console.log(convertToObj(a, b))

Producción:

{
  1: "ram",
  2: "shyam",
  3: "sita",
  4: "gita"
}

Publicación traducida automáticamente

Artículo escrito por _saurabh_jaiswal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *