Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.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_Json_Object - Fatal编程技术网

Javascript 从另一个对象提取对象

Javascript 从另一个对象提取对象,javascript,json,object,Javascript,Json,Object,我想从另一个对象中提取一个对象,并将提取的对象作为单独的自变量,使其不再是第一个对象的一部分。下面的内容似乎是这样的,但似乎有点复杂。正确的方法是什么 function printIt(name,o) { //Do this way so I can see what object was at given time. console.log(name,JSON.stringify(o)) } var o = { a: 123, b: { a: 111, b: 2

我想从另一个对象中提取一个对象,并将提取的对象作为单独的自变量,使其不再是第一个对象的一部分。下面的内容似乎是这样的,但似乎有点复杂。正确的方法是什么

function printIt(name,o) {
  //Do this way so I can see what object was at given time.
  console.log(name,JSON.stringify(o))
}
var o = {
  a: 123,
  b: {
    a: 111,
    b: 222,
    c: [3, 2, 1]
  },
  c: {
    a: 321,
    b: 123,
    c: [1, 2, 3]
  }
};
printIt("o0", o);

var o_b = o.b;

printIt("o_b1", o_b);
printIt("o1", o);

o_b.a = 444;
o.b.c=666;

printIt("o_b2", o_b);
printIt("o2", o);

delete o.b;

printIt("o_b3", o_b);
printIt("o3", o);


不太清楚为什么需要使用对象键,但我会看看如何使用。比如:

var o = {
  a: 123,
  b: {
    a: 111,
    b: 222,
    c: [3, 2, 1]
  },
  c: {
    a: 321,
    b: 123,
    c: [1, 2, 3]
  }
};

var b = Object.assign({}, o.b)
delete o.b;

console.log(o) // { a: 123, c: { a: 321, b: 123, c: [ 1, 2, 3 ] } }
console.log(b) // { a: 111, b: 222, c: [ 3, 2, 1 ] }
var o = {
  a: 123,
  b: {
    a: 111,
    b: 222,
    c: [3, 2, 1]
  },
  c: {
    a: 321,
    b: 123,
    c: [1, 2, 3]
  }
};

var b = Object.assign({}, o.b)
delete o.b;

console.log(o) // { a: 123, c: { a: 321, b: 123, c: [ 1, 2, 3 ] } }
console.log(b) // { a: 111, b: 222, c: [ 3, 2, 1 ] }