在Javascript中从for循环将元素放入数组
我有一个函数,它获取在Javascript中从for循环将元素放入数组,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,我有一个函数,它获取coursecontId我想把它们都放在for循环的一个数组中,但是它会为每个coursecontId创建一个新数组。这是我的密码 function keyLoop() { let content = vm.comparisonThumbnail.list; content.forEach(a => { let cid = a.courseContentId; if (cid == undefined) {
coursecontId
我想把它们都放在for循环的一个数组中,但是它会为每个coursecontId
创建一个新数组。这是我的密码
function keyLoop() {
let content = vm.comparisonThumbnail.list;
content.forEach(a => {
let cid = a.courseContentId;
if (cid == undefined) {
cid = ' ';
}
vm.loopKey = cid;
var pass = vm.loopKey;
result(pass);
});
function result(pass) {
let receiver = [];
receiver.push(pass);
console.log(receiver);
}
}
我希望他们像这样[471471471471472472472472473473….]
但它返回[471][471][471][472]。。。。。。等等。试试这个
function keyLoop() {
let content = vm.comparisonThumbnail.list;
let receiver = [];
content.forEach(a => {
let cid = a.courseContentId;
if (cid == undefined) {
cid = ' ';
}
vm.loopKey = cid;
var pass = vm.loopKey;
receiver.push(pass);
});
console.log(receiver);
}
这是因为每次调用result函数时都要定义一个新的空数组 为此,您需要在循环执行之前创建数组
function keyLoop() {
let receiver = [];
let content = vm.comparisonThumbnail.list;
content.forEach(a => {
let cid = a.courseContentId;
if (cid == undefined) {
cid = ' ';
}
vm.loopKey = cid;
var pass = vm.loopKey;
result(pass);
});
function result(pass) {
receiver.push(pass);
console.log(receiver);
}
}
你可以试试这个
function keyLoop() {
let content = vm.comparisonThumbnail.list;
let receiver = [];
let courseCounter = 0;
content.forEach(a => {
let cid = a.courseContentId;
if (cid == undefined) {
cid = ' ';
}
vm.loopKey = cid;
var pass = vm.loopKey;
receiver[courseCounter] = pass;
courseCounter++;
});
console.log(receiver);
}
难道你不想对列表进行排序吗
let result = vm.comparisonThumbnail.list.map(v => v.courseContentId).sort();
这里我们将获取ID列表(by.map)并对其进行排序。如果我们想保护结果不受未定义ID的影响,它可能看起来像
let result = vm.comparisonThumbnail.list
.map(v => Number(v.courseContentId))
.filter(v => !isNaN(v))
.sort();
每次调用结果时都会重新创建接收方列表。。。将其定义放在函数result()之外()
let receiver=[]代码>正在生成一个新数组。。。。因此,如果您不想要一个新的数组,就不要定义一个新的数组。make let receiver=[];作为一个全局变量。意味着把它从结果函数中带出来。它返回未定义的。对我来说也适用。谢谢