变量赋值时链式推入方法导致的意外结果
Unexpected results from chaining push method in assignment of variable
这可能是非常明显的,但我在不同设置下使用Javascript时遇到过几次。
目前,我正在开发一个React应用程序,我正在向对象数组中添加一个对象。
下面的代码运行正常:
handleCreate (site) {
var sites = this.state.sites;
sites.push(site);
console.log(sites); // logs an array of objects, as expected
}
handleCreate (site) {
var sites = this.state.sites.push(site);
console.log(sites); // logs an integer, the number of objects in the array + 1
}
为什么它们的工作方式不一样呢?第二组代码中发生了什么?
谢谢!
Array.prototype。Push返回数组的新长度。
在第二种情况下,你将返回的长度赋值给一个变量,然后记录该变量。
在第一种情况下,你对返回值不做任何事情(不将调用的结果分配给任何变量),然后你记录数组
Array.push()
返回数组(MDN)的新长度。
当你做var sites = this.state.sites.push(site);
时,你是在给站点分配站点的长度。从该点开始,其值为整型。
相关文章:
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- Javascript:函数返回意外结果
- 意外结果,在 ASP.Net 中解析 JSON 对象的数组
- 按位或意外结果
- 来自 JavaScript 循环的意外结果
- 从 JavaScript 中的图像中读取像素数据会返回半透明像素的意外结果
- 在 JS 中短路空数组会产生意外结果:“[] ||真 == []'
- NodeJS中的Parse Json文件在Node中显示意外结果
- 基于给出意外结果的提示输入的逻辑
- JavaScript Regexp.test返回意外结果
- 键控产生意外结果.HTML5游戏
- Javascript do/while循环显示意外结果
- 来自 CSS 和 jQuery 的意外结果
- MongoDB mapReduce方法意外结果
- 具有意外结果的 Javascript 函数参数
- 在 JavaScript 中解析日期字符串的意外结果
- 从内部HTML更改为表单时获得意外结果,输入类型文本字段
- 在计算链逻辑表达式 JavaScript 时出现意外结果
- 意外结果 - 谷歌自动完成针对约克郡
- JavaScript unshift 参数返回意外结果