我想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
数组中存在的值一样多的值?
分辨率- 替换
i < names.length - 1
为i < names.length
for
循环执行代码块的条件错误。您的代码工作正常,只是生成的结果比需要的少 1 个。
关于for
工作原理的MDN 网络文档。
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());
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句