Javascript 如何修复这个forEach函数?

Javascript 如何修复这个forEach函数?,javascript,Javascript,我正在尝试使用此forEach函数,但它不起作用: arr = [ 0, 50, 0, 14] 基本上,我希望在嵌套for循环中使用数组的值,如下所示: arr.forEach(([x1, x2, y1, y2]) => { for (let x = x1; x < x2; ++x) { for (let y = y1; y < y2; ++y) { doSomething(x,y) } } })

我正在尝试使用此forEach函数,但它不起作用:

arr =  [ 0, 50, 0, 14]

基本上,我希望在嵌套for循环中使用数组的值,如下所示:

arr.forEach(([x1, x2, y1, y2]) => {
    for (let x = x1; x < x2; ++x) {
        for (let y = y1; y < y2; ++y) {
            doSomething(x,y) 
        } 
    } 
});
arr.forEach([x1,x2,y1,y2])=>{
对于(设x=x1;x
你能告诉我为什么吗?如何修复它


谢谢

我想你想把数组转换成一个对象

const obj = {
    myx1: arr[0],
    myx2: arr[1],
    myy1: arr[2],
    myy2: arr[3],
}

在您的情况下不需要循环。

您不应该使用forEach,因为它会迭代数组。对于您的用例,您可以使用数组分解

让arr=[0,50,0,14];
设[x1,x2,y1,y2]=arr;
对于(设x=x1;x
有关分解分配的更多信息,请参见此处:

您的forEach无法正常工作,因为您希望在一次迭代中返回所有四个元素,因此,要使您的forEach像您提到的那样工作,您应该将元素数组包含在另一个数组中,如

让arr=[[0,50,0,14]];
arr.forEach(([x1,x2,y1,y2])=>{
对于(设x=x1;x
它现在可以工作了,因为您现在正在分解数组的第一项,即包含四个元素的数组。它的意思是,取arr[0],也就是[0,50,0,14],并使用解构将其分配给[x1,x2,y1,y2]。与

arr.forEach(项目=>{
常数[x1,x2,y1,y2]=项目
...

你想在这里做什么?如果你想创建4个变量,你不需要forEach。你可以像这样使用解构:
让[myx1,myx2,myx3,myx4]=arr
您到底想实现什么?另外,您的语法是错误的。请先阅读。您可能不理解forEach是如何工作的。在第一次传递时,它使用第一个值并将其传递到函数中,然后使用第二个值进行第二次传递,以此类推。虽然forEach处理程序函数中有完整的数组,但它可以基本上,我希望在嵌套for循环中使用数组的值,如下所示:arr.forEach(([x1,x2,y1,y2])=>{for(let x=x1;x