首页 > 解决方案 > 在 JavaScript 中使用 for 循环创建对象数组

问题描述

我想for使用另一个数组中的值创建一个带有循环的对象数组。

下面的代码片段生成5值,而不是6(根据需要)

function generateArray() {
    var names = ["Fariz", "Falisha", "Mami", "Defina", "Fiska", "Papi"];
    var newObj = [];

    for (i = 0; i < names.length - 1; i++) {
        newObj[i] = {
            name: names[(Math.floor(Math.random() * (names.length)))],
            age: Math.floor(Math.random() * 40),
            communication: Math.floor(Math.random() * 20),
            skill: Math.floor(Math.random() * 20),
            experience: Math.floor(Math.random() * 20)
        }
    }

    return newObj;
}

console.log(generateArray());

如何生成与names数组中存在的值一样多的值?

标签: javascriptarraysobjectfor-loop

解决方案


分辨率- 替换i < names.length - 1i < names.length

for循环 执行代码块的条件错误。您的代码工作正常,只产生比需要的少 1 个结果。

MDN 网络文档如何for工作。

function generateArray() {
    names = ["Fariz", "Falisha", "Mami", "Defina", "Fiska", "Papi"];
    newObj = [];

    for (i = 0; i < names.length; i++) {
        newObj[i] = {
            name: names[(Math.floor(Math.random() * (names.length)))],
            age: Math.floor(Math.random() * 40),
            communication: Math.floor(Math.random() * 20),
            skill: Math.floor(Math.random() * 20),
            experience: Math.floor(Math.random() * 20)
        }
    }

    return newObj;
}

console.log(generateArray());


推荐阅读