相关疑难解决方法(0)

GWT叠加深层复制

制作gwt叠加类型的深层副本的最佳方法是什么?

我正在寻找一个功能或库来检查GWT覆盖并克隆它.它必须能够克隆包含的数组或对象.

谢谢

gwt overlay clone

2
推荐指数
1
解决办法
3356
查看次数

如何在javascript中保留数组?

这里有一些代码有两个数组(np和op),一个是另一个的副本

但是,当我修改副本时,原件也被修改了!看一看:

<script type="text/javascript">
var op=new Array(0, 0);
var np=op;
np[1]=2;
document.write(op+"<br>")
document.write(np)
</script>
Run Code Online (Sandbox Code Playgroud)

有没有办法保留原件并修改副本?

javascript arrays retain

1
推荐指数
2
解决办法
1440
查看次数

克隆JSON无法按预期工作

我有一个JSON文字如下:

var json_1 = {
    "name": "Tim",
    "toys": ["ball", "bat", "lego"]
};
Run Code Online (Sandbox Code Playgroud)

现在我克隆如下:

var json_2 = json_1;
Run Code Online (Sandbox Code Playgroud)

如果我从json_1(使用splice())中取出玩具,那么似乎就会被移除json_2.如何在不相互依赖的情况下创建副本?

javascript json

1
推荐指数
1
解决办法
116
查看次数

Javascript - 修改数组重复项而不修改原始数组

我确信这是一件愚蠢的事情,但我无法解决它。

如果我这样做:

var arr = [1, 2, 3, "up"];
var duplicate = arr;
duplicate[3] = "down";
console.log(arr[3]); //"down"
console.log(duplicate[3]); //"down"
Run Code Online (Sandbox Code Playgroud)

那么为什么原始数组也被修改了呢?这与它们指向同一个数组有关吗?

如何只修改重复项?

javascript

1
推荐指数
1
解决办法
3802
查看次数

Javascript中是否有复制构造函数?

我正在用javascript创建对象。但是,我知道我正在使用新的className()运算符。我想知道是否可以创建副本构造函数,以便在创建新对象(即var object1 = object2)时,仅将object2中的成员变量复制到object1中,而不将其复制到指针中。谢谢!

javascript

1
推荐指数
1
解决办法
4328
查看次数

如何在javascript中创建json对象的副本,而不是引用

我有带有json测试数据的testdata.js文件,如下所示:

testdata.js文件:

module.exports = 
Run Code Online (Sandbox Code Playgroud)

{createHost:{

        name : "System-001",
        description: "Creating System",

    }
Run Code Online (Sandbox Code Playgroud)

}

在另一个测试中,我试图使用上述测试数据创建一个名为testcase1的变量。更改testcase1中的属性值,将更改testdata.js文件json对象中的值。

it("Create a host", function(){
var testcase1 = testdata.createHost;

testcase1.name="sys-002";

console.log(testcase1.name);
console.log(testdata.createHost.name);
});
Run Code Online (Sandbox Code Playgroud)

响应:sys-002 sys-002

我的要求是创建testdata的副本,而不是创建引用。我怎样才能做到这一点?

javascript mocha.js

1
推荐指数
1
解决办法
2354
查看次数

在javascript中删除对另一个对象的引用

var b = {};
var a = b;
b.test = 123;
console.log(a.test);
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写类似于上面的代码,但是为了不必描述上下文,我将显示^

a = b我想要丢失从a到b的引用之后,我可以在不影响a的情况下更新b,反之亦然

这可能吗?

javascript

1
推荐指数
3
解决办法
3975
查看次数

为什么这个函数会改变数据?

function bubbleSort(toSort) {
  let sort = toSort;
  let swapped = true;
  while(swapped) {
    swapped = false;
    for(let i = 0; i < sort.length; i++) {
      if(sort[i-1] > sort[i]) {
        let temp = sort[i-1];
        sort[i-1] = sort[i];
        sort[i] = temp;
        swapped = true;
      }
    }
  }
  return sort;
}

let asdf = [1,4,3,2];
let asd = bubbleSort(asdf);

console.log(asdf, asd);
Run Code Online (Sandbox Code Playgroud)

此代码的输出为:[1,2,3,4] [1,2,3,4].

我期待的是:[1,4,3,2] [1,2,3,4].

我想知道的是,为什么这会改变asdf变量?bubbleSort函数接受给定的数组(asdf),复制它(排序),然后处理该变量并返回它,asd设置为等于.我觉得自己像个白痴,但我不知道为什么会这样:(

javascript mutable immutability

1
推荐指数
1
解决办法
73
查看次数

如何定义变量类型的数组对象的新对象?

jQuery让我的生活更轻松,但我仍然是JavaScript的初学者.所以,可能是,我在这里问一个非常愚蠢的问题:

var t = {
    rows: 3,
    columns: 5,
    getCellCount: function () {
        return this.rows * this.columns;
    }
};
var tn = t;
tn.rows = 6;
document.write(tn.rows + " , " + t.rows);   // returns 6 , 6
Run Code Online (Sandbox Code Playgroud)

我也试过了 var tn = new t(); // but seems wrong

那么,如何从对象中检索旧的内在值,使其产生6,3

javascript

0
推荐指数
1
解决办法
126
查看次数

使用删除属性而不影响父对象

这是两个名为和 的对象primarysecondary

var primary = {"gonna":3,"lol":114,"wouldn":2,"know":6,"lowkey":2,"man":5};
var secondary = primary;
Run Code Online (Sandbox Code Playgroud)

当我使用delete secondary['lol'];它时,它会从两个对象中删除该属性:jsfiddle

我的问题是:如何删除属性secondary而不将其删除primary

javascript

0
推荐指数
1
解决办法
321
查看次数

标签 统计

javascript ×9

arrays ×1

clone ×1

gwt ×1

immutability ×1

json ×1

mocha.js ×1

mutable ×1

overlay ×1

retain ×1