JavaScript 如何从两个数组创建对象

JavaScript 如何从两个数组创建对象

给定两个数组,任务是根据第一个数组中的键和第二个数组中的值创建一个对象。如果数组长度不相等或数组为空,则返回null。

我们可以使用以下几种方式来从两个数组创建对象:

  • 使用for-each循环
  • 使用Object.assign方法
  • 使用reduce()方法
  • 使用循环
  • 使用object.fromEntries()方法

    示例:

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

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

方法1:使用for-each循环

arr.forEach()方法会对数组的每个元素调用提供的函数。提供的函数可以对给定数组的元素执行任何操作。

示例: 在这个示例中,我们将使用Javascript的for-each循环。

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))

输出

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

方法2:使用Object.assign方法

Object.assign()方法用于将一个或多个源对象的值和属性复制到目标对象中。

示例: 在这个示例中,我们将使用Javascript的Object.assign方法。

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))

输出

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

方法3:使用 reduce() 方法

在JavaScript中,arr.reduce()方法用于将数组减少为单个值,并对数组的每个值(从左到右)执行提供的函数,并将函数的返回值存储在累加器中。

示例: 在这个示例中,我们将使用JavaScript的reduce()方法。

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 reduce() method
    let object = a.reduce((acc, element, index) => {
        return {
            ...acc,
            [element]: b[index],
        };
    }, {});
 
    return object;
}
console.log(convertToObj(a, b));

输出

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

方法4:使用循环

这是使用循环从两个数组创建对象的基本方法。我们可以遍历其中一个数组,并使用循环索引访问两个数组的对应元素。

示例:

function createObject(keys, values) {
    let result = {};
    let length = Math.min(keys.length, values.length);
    for (let i = 0; i < length; i++) {
        result[keys[i]] = values[i];
    }
    return result;
}
 
// Example usage:
let a = [1, 2, 3, 4];
let b = ["ram", "shyam", "sita", "gita"];
let result = createObject(a, b);
console.log(result);

输出

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

方法5:使用object.fromEntries()方法

Object.fromEntries()方法 在JavaScript中是一个标准内置对象,用于将一个键值对列表转换为一个对象。

示例:

function createObject(keys, values) {
    const obj = Object.fromEntries(
        keys.map((key, index) => [key, values[index]]),
    );
 
    return obj;
}
 
let a = [1, 2, 3, 4];
let b = ["ram", "shyam", "sita", "gita"];
let result = createObject(a, b);
console.log(result);

输出

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程