Array.prototype.push.应用意外行为
Array.prototype.push.apply unexpected behaviour
我正在尝试使用Array.prototype.push.apply来合并两个列表。
c = Array.prototype.push.apply(a, b);
但是,当第二个数组是[]
时,这不会合并数组。
例如,如果
a = ['x', 'y', 'z']
b = []
c
将是3
为什么会发生这种情况?[]
不应该像对待任何数组一样对待吗?
只需使用Array.prototype.concat:
c = a.concat(b);
如果您想要一个具有串联值的新数组,请改用array.concat()。
您可能试图实现的是使用push.apply
将b
附加到a
。但是,这种方法意味着您不必创建新的数组c
来保存结果。
var a = [1, 2, 3, 4], b = [5];
a.push.apply(a, b); // a = [1, 2, 3, 4, 5]
您真正的问题是.apply
,它询问contetx(a)和一个值数组(b),如果您传递一个空数组,它的行为就像您没有传递任何值。。。
试试这个:
c = Array.prototype.push.call(a, b);
//c = 4
相关文章:
- 应用jQuery动画时出现意外的抖动效果
- GAS 单击事件处理程序导致 UI Web 应用中出现“意外错误”
- Angular应用程序中FOR循环的意外行为
- 将样式应用于融合表上的图标时,会得到意外的标识符
- Electron应用程序上的意外令牌导入
- Node.js使用 Socket.io 的应用程序在OpenShift主机上给出“意外响应代码:400”
- 意外的删除行为谷歌电子表格应用程序
- 意外的输入结束 - 快速/节点应用程序上的 curl JSON
- 应用程序已意外停止,请重试安卓
- 未捕获的引用错误:未定义应用,未捕获的语法错误:意外的令牌<.缺少一些东西
- Node.js-样式没有't应用于页面&谷歌Chrome表示:未捕获语法错误:意外的令牌<
- Array.prototype.push.应用意外行为
- 谷歌应用程序脚本中的属性服务出现意外行为
- 是什么导致了“;未捕获的语法错误:意外的标记"在我的应用程序中
- 应用程序有错误.意外的标记."尝试添加删除按钮
- Javascript事件/rails应用程序中的意外结果
- Android应用默认参数的意外令牌
- 应用左边框时 Css3 html5 Div 对齐方式中出现意外问题
- 流星0.8.0:在构建应用程序时:意外的关闭模板标记
- 考勤应用程序未捕获的语法错误:意外的令牌{