【发布时间】:2018-03-13 23:34:22
【问题描述】:
我们如何在 JavaScript 中基于一个数组/向量长度创建尽可能多的对象?我们可以像业余爱好者(我)所期望的那样以简单的方式做到这一点吗?
假设我们有以下内容:(sn-p not working, yet)
- 两个数组
- 对象的函数
- 基于上述Object函数创建对象的函数
- 返回另一个包含已创建对象的数组(此处为 x)
可以用这种方式用对象填充数组 (x) 吗? 谢谢!
<!DOCTYPE html>
<html>
<body>
<h1>TEST:</h1>
<input onclick="running()" type="submit" value="RUN TEST">
<script>
function running(){
array1 = ["A","B","C"]; /*array1 and array2 => same lenght*/
array2 = [10,20,30];
function Obj(letters, numbers) {this.letters = letters; this.numbers = numbers;}
function CreateObj(array1,array2){
var x = [];
for (var i=0;i<=array1.length;i++){
var created = new Obj();
created.letters= array1[i];
created.numbers= array2[i];
x.push(created);
}
return alert(x);
}
CreateObj(array1,array2)
}
</script>
</body>
</html>
编辑:我已经以更简单的方式解决了我需要的问题(至少对我来说,更容易理解发生了什么):
function Obj(letters, numbers) {this.letters = letters; this.numbers = numbers;}
array1 = ["A","B","C"]; /*array1 and array2 => same lenght*/
array2 = [10,20,30];
function CreateObj(array1,array2) {
var x = [];
for (var i=0;i<=array1.length-1;i++){
var newArray = new Obj(array1[i],array2[i]);
x.push(newArray);
}
return console.log(x); /*returns an Array with array1.length objects...*/
}
CreateObj(array1,array2);
【问题讨论】:
-
你需要把这个从
i<=array1.lenght;改成i<=array1.length; -
谢谢斯芬克斯
标签: javascript arrays object for-loop