Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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 JSON.stringify inside Object.assign创建多个属性_Javascript_Json - Fatal编程技术网

Javascript JSON.stringify inside Object.assign创建多个属性

Javascript JSON.stringify inside Object.assign创建多个属性,javascript,json,Javascript,Json,JSON stringify在将对象与object.assign一起使用时向对象添加其他属性 请你解释一下,为什么会发生这种情况,以及如何避免 例如: 当Object.assign遇到一个iterable时,它将其视为一个数组,并将数字属性指定给目标对象: x=Object.assign({},'abc') console.log(x)当Object.assign遇到一个iterable时,它将其视为一个数组,并为目标对象分配数字属性: x=Object.assign({},'abc')

JSON stringify在将对象与object.assign一起使用时向对象添加其他属性

请你解释一下,为什么会发生这种情况,以及如何避免

例如:


Object.assign
遇到一个iterable时,它将其视为一个数组,并将数字属性指定给目标对象:

x=Object.assign({},'abc')

console.log(x)
Object.assign
遇到一个iterable时,它将其视为一个数组,并为目标对象分配数字属性:

x=Object.assign({},'abc')

console.log(x)
请添加您真正需要的内容。事实上,把一个数字串起来并用它作为某件事情的关键是毫无意义的。对象的键总是转换为字符串。我不想使用对象的数字,而是在广度优先搜索算法中使用它。数字仅为示例。如果要将对象用作键,则不应使用普通对象作为容器,而应使用
贴图
。请添加真正需要的内容。事实上,把一个数字串起来并用它作为某件事情的关键是毫无意义的。对象的键总是转换为字符串。我不想使用对象的数字,而是在广度优先搜索算法中使用它。数字只是示例。如果要将对象用作键,则不应使用普通对象作为容器,而应使用映射。
//////////////////Example without JSON////////////////////
let object = {}
object = Object.assign({}, object, object[1]=2);
console.log(object)
/////////////////////////////////////////////////////////
Output:
[object Object] {
1: 2
}

//////////////////Example with JSON/////////////////////
let objectNew = {}
let first = JSON.stringify(1);
let second = JSON.stringify(2);
objectNew  = Object.assign({}, objectNew , objectNew[first]=second);
console.log(objectNew);
/////////////////////////////////////////////////////////
Output:
[object Object] {
0: "2",
1: "2"
}