相关疑难解决方法(0)

GWT中的深度克隆

在浏览此链接时 如何在javascript中深入克隆

我遇到了一个通用克隆方法(在接受的答案中).我尝试了直接在javascript中运行它运行给出了完美的输出.

我将该代码放在本机标记中,并尝试克隆GWT中的对象.

我想要克隆的班级是

    private class Container
    {
        Integer i = 5;
    }
Run Code Online (Sandbox Code Playgroud)

当我尝试这样做时,它只是给我一个同样的对象.有人可以帮忙吗?如果不清楚的话,问我什么.万分感谢.

javascript gwt clone

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

创建一个新对象,而不是引用

这是我第一次来。

所以问题是,我有一个带有所有变量的对象,如下所示:

app.Variables = {
    var1: 0,
    var2: 0,
    var3: 0
}
Run Code Online (Sandbox Code Playgroud)

我想将此值存储在名为Defaults的对象中,如下所示:

app.Defaults = app.Variables
Run Code Online (Sandbox Code Playgroud)

但是现在的问题是,在我的代码中,app.Variables.var1例如像这样递增:

app.Variables.var1++
Run Code Online (Sandbox Code Playgroud)

这意味着,app.Defaults.var1也等于app.Variables.var1。

我在这里该怎么办?

javascript

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

javascript - 如何在没有引用的情况下克隆数组

我正在尝试将Array克隆到一个新的,我希望克隆的数组没有引用原始副本

我知道有splicefrom方法,但这些方法的新数组都引用了原始数组

例如

let original = [ [1,2], [3,4] ];
let cloned = Array.from(original); // this will copy everything from original 
original[0][0] = -1;
console.log(cloned[0][0]); // the cloned array element value changes too
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用循环cloned[i][j] = original[i][j],但结果是一样的

如何使用原始Array中具有相同值的每个元素创建一个新Array,但是克隆的Array应该没有对原始Array的引用?

谢谢!

javascript

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

javascript删除关键字无法正常工作

我觉得这真的很奇怪,我是json通过 http 发送的。

{
   "foo":"bar",
   "foo2":"bar2",
   "name":{
       "firstName":"Joff",
       "middleName":"Ramirez",
       "lastName":"Tiquez"
   }
}
Run Code Online (Sandbox Code Playgroud)

在服务器上我正在执行这些命令:

var data = req.body; // the json from http
console.log('data', data); // the data now has the req.body's value 
delete data.name; // <-- here's the delete
console.log('data', data); // the name object will obviously be deleted
console.log('req.body', req.body); // the name on the req.body was deleted too. Wtf?
Run Code Online (Sandbox Code Playgroud)

req.body.name因此,当我尝试在程序的其他部分使用 时,name现在已经消失了。那是delete应该如何工作吗?

javascript

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

Angular4复制对象没有引用?

在组件内部,我尝试从可以在组件内部修改的服务中复制对象,但应该保留在服务中.

private test;

public ngOnInit(): {
  console.log(this.someService.test.someProperty) //'old'
  this.test = this.someService.test;

  //not working as well?!
  //this.test = Object.assign({}, this.someService.test);
  //this.test = Object.create(this.somerService.test);

  this.changeTest();
}

public changeTest(): void {
  this.test.someProperty = 'new';
}
Run Code Online (Sandbox Code Playgroud)

在init之后,this.test.someProperty以及this.someService.test.someProperty更改为new即使最后应该留下old

为什么会这样,以及如何只改变属性 this.test

copy reference object angular

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

为什么当我更改副本时原始数组会更改?

我正在尝试使用回溯法制作数独求解器,但遇到了问题。每当我更改网格数组的副本时,原始数组也会更改。

有人能帮助我吗?

算法:

let grid = [
   [0, 0, 0, 0, 0, 0, 0, 0, 0],
   [0, 0, 0, 0, 0, 0, 0, 0, 0],
   [0, 0, 0, 0, 0, 0, 0, 0, 0],
   [0, 0, 0, 0, 0, 0, 0, 0, 0],
   [0, 0, 0, 0, 0, 0, 0, 0, 0],
   [0, 0, 0, 0, 0, 0, 0, 0, 0],
   [0, 0, 0, 0, 0, 0, 0, 0, 0],
   [0, 0, 0, 0, 0, 0, 0, 0, 0],
   [0, …
Run Code Online (Sandbox Code Playgroud)

javascript arrays

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

克隆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 ×6

angular ×1

arrays ×1

clone ×1

copy ×1

gwt ×1

json ×1

object ×1

reference ×1