Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中修改对象值的问题_Javascript_Jquery - Fatal编程技术网

在javascript中修改对象值的问题

在javascript中修改对象值的问题,javascript,jquery,Javascript,Jquery,我有以下代码 var emp={"EmployeeLists":[{"ID":1,"NAME":"Anbu","Salary":80000},{"ID":2,"NAME":"Anand","Salary":90000}]}; // Inserting a new object into EmployeeLists emp.EmployeeLists.splice(2,0,emp.EmployeeLists[1]) console.log(JSON.stringify(emp)); 输出:{“

我有以下代码

var emp={"EmployeeLists":[{"ID":1,"NAME":"Anbu","Salary":80000},{"ID":2,"NAME":"Anand","Salary":90000}]};

// Inserting a new object into EmployeeLists
emp.EmployeeLists.splice(2,0,emp.EmployeeLists[1])
console.log(JSON.stringify(emp));
输出:
{“员工名单”:[{“ID”:1,“姓名”:“Anbu”,“薪水”:80000},{“ID”:2,“姓名”:“Anand”,“薪水”:90000},{“ID”:2,“姓名”:“Anand”,“薪水”:90000}

// Modifying inserted object NAME Anand into MANI
emp.EmployeeLists[2].NAME="MANI";
console.log(JSON.stringify(emp));
输出:
{“员工名单”:[{“ID”:1,“姓名”:“Anbu”,“薪水”:80000},{“ID”:2,“姓名”:“**MANI**”,“薪水”:90000},{“ID”:2,“姓名”:“**MANI**”,“薪水”:90000}


添加新对象后。我试图将对象的名称修改为AnandMANI,但它被修改为对象的名称TwoTwoTwo

这是一个很好的问题!您看到的是对象的底层共享,因为如果您不小心的话,Javascript会像对待C中的指针一样秘密地对待对象。让我们重写它以生成对象的克隆。我们将使用(在Javascript中克隆对象在一般情况下很烦人)


你的问题不清楚,你能解释清楚你想做什么吗?
function clone(obj) {
    if (null == obj || "object" != typeof obj) return obj;
    var copy = obj.constructor();
    for (var attr in obj) {
        if (obj.hasOwnProperty(attr)) copy[attr] = obj[attr];
    }
    return copy;
}

emp.EmployeeLists.splice(2, 0, clone(emp.EmployeeLists[1]));
emp.EmployeeLists[2].NAME = "MANI";
// {"EmployeeLists":[{"ID":1,"NAME":"Anbu","Salary":80000},{"ID":2,"NAME":"Anand","Salary":90000},{"ID":2,"NAME":"MANI","Salary":90000}]}