javascript'='用作链接对象
javascript '=' works as linked object?
我编写了一段代码,删除了数组中的"-1",但我不想修改原始代码。
下面就是那个。
var original = [ 1, 2, 3, 4, -1, -1 ];
var temp = original;
for ( var i = ( temp.length - 1 ); i >= 0; i-- ) {
if ( temp[j] == -1 ) {
temp.splice( i, 1 );
}
脚本执行后。原件是[1,2,3,4],温度也是[1,2,3.4]
原始和临时都被修改了!
为什么?
这是因为只有一个数组-简单地说,两个变量名称为相同的数组。就像一个人(有昵称)一样,一个对象可以有多个名称。
JavaScript中的=
(赋值)运算符不会复制/克隆/复制正在赋值的对象
Array.splice
函数突变数组(其中只有一个),当与上述函数一起使用时,该数组解释了行为。
要创建阵列的浅层克隆,arr.slice(0)
可能很有用。
您可以使用类似的数组过滤方法
var res = original.filter(function(i){ return i != -1;});
这是因为您只使用了一个数组。
var temp = original;
还要注意,equal=运算符不会复制对象。
你可以尝试这样的方法来实现你想要的:
var temp = original.slice(0);
var original = [ 1, 2, 3, 4, -1, -1 ];
var tem = original.filter(function (d) {
return d !== -1;
});
console.log(original); // [1, 2, 3, 4, -1, -1]
console.log(tem); // [1, 2, 3, 4]
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
演示:http://jsfiddle.net/J37tF/
相关文章:
- 使用jquery延迟对象链接多个ajax调用
- 什么是“;原型;通过JavaScript中的Object Literal Notation创建的对象的链接
- 从JSON对象创建具有超链接的HTML表
- 如何从 MVC4 链接调用 Javascript 方法(错误 JavaScript 运行时错误:对象不支持此操作)
- 如何使用 HTML/JavaScript 为对象添加链接
- 当图像和链接是 json 对象属性的值时,它们不起作用
- 检查链接对象形式中未定义属性的最佳实践是什么
- javascript'='用作链接对象
- 如何通过html链接将特定对象传递给函数
- 是否可以使用HTML从任意字符串创建Jquery对象,例如var$newlink=$('<a>新链接
- 对象.创建和链接对象
- 在指令链接中访问 ngModel 的父对象
- Javascript:如何在不复制但链接的情况下将另一个对象 B 的方法混合到我的对象 A
- AngularJS 指令:使用包含/编译链接集合中的对象
- 循环访问链接对象,如何避免重复
- 高亮显示背景窗格大于链接对象且没有填充的链接
- 链接对象时如何使用相同的方法
- Xlxs.js的“l"单元格超链接对象选项工作
- 在ASP中为超链接对象的属性添加撇号等字符.净VB
- 如何从构造函数返回一个数组,并成功地在Javascript中链接对象