arr是一个数组
let obj ={} //res是对象
arr.push(obj) //不生效
let res = arr.push(obj) //生效
有些迷茫,不知道为什么
该回答引用ChatGPT
Array.push() 方法会将新的元素添加到数组末尾,并返回新的数组长度。
在第一个例子中,您只是向数组 arr 添加一个新元素,但您没有在 push() 方法调用后将其赋值给任何变量。因此,该语句执行成功,但没有任何输出。您可以使用 console.log() 函数在控制台上打印 arr 数组来检查它是否已更新。
在第二个例子中,您将新元素添加到数组 arr 中,同时使用 push() 方法返回的新数组长度赋值给变量 res。这将输出数组的新长度,而不是数组本身。
因此,两个例子的结果是不同的。如果您只想向数组中添加元素,您可以使用第一个例子中的代码,如果您想获取数组的新长度,则可以使用第二个例子中的代码。
arr.push(obj) 方法会将 obj 添加到 arr 数组中,并返回修改后的数组的新长度。但是,这个返回值不是将 obj 添加到 arr 的结果,而是修改后的数组的长度。因此,arr.push(obj) 语句不会为 res 赋值,只会将 obj 添加到 arr 数组中。
如果想要在将 obj 添加到 arr 数组中的同时,为 res 赋值,可以使用以下方式:
let res = arr.push(obj);
这样,arr.push(obj) 会将 obj 添加到 arr 数组中,并返回修改后的数组的新长度,这个值将被赋给 res 变量。
Array.push() 方法返回的是添加元素后的数组长度,而不是修改后的数组。所以在你的例子中,第一次使用 arr.push(obj) 只是将 obj 添加到了 arr 中,但是 arr 的值本身没有改变,因此 res 的值为 arr 的长度,而不是修改后的数组。
如果你想在原来的 arr 数组中添加元素并修改该数组,可以使用以下代码:
let obj = {};
arr.push(obj);
let res = arr; // 此时的 res 和 arr 指向同一个数组
这样,res 将会指向 arr,而 arr 的值已经被修改了,包含了新的元素 obj。
你打印arr就行了 。
let obj = {} //res是对象
let arr=[];
// arr.push(obj) //不生效
let res = arr.push(obj) //生效
console.log(arr,res)
push之后返回的是新的数组的长度,而不是新的数组。
以你上面代码为例,执行到最后 arr数组,长度应为2,里面包含两个空对象。 res也为2,因为你push了两次。