我有一个名为featureSet
的对象。
在featureSet
内有许多项,包括一个名为features
的数组,其中包含另一个数组attributes
。
我可以在featureSet.features.attributes
内通过执行以下操作在for loop
内添加新数组
featureSet.features[i].attributes.NEWITEM= [NEWITEM_ARRAY];
当我使用
console.log(featureSet)
时,我可以看到其中的项目。但是,当我使用
var test = JSON.stringify(featureSet
时,仅返回原始的featureSet
。我该如何规避这个问题,以便当我调用JSON.stringify时,新项目也在那里?
先感谢您。
最佳答案
我猜您正在做什么:
let arr = []
console.log(arr) // []
arr.push(1)
console.log(arr) // [1]
arr.abc = 2
console.log(arr.abc) // 2
arr.push(3)
console.log(arr) // [1, 3]
console.log(JSON.stringify(arr)) // '[1, 3]'
console.log(arr.abc) // 2
JSON.stringify
在Symbol.iterator
的帮助下循环遍历数组道具。您的属性没有正整数索引,这就是为什么它们会被忽略的原因。在MDN上也有一个示例:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify要考虑的另一个示例(续以上示例):
arr[7] = 7
console.log(arr) // [1, 3, undefined, undefined, undefined, undefined, undefined, 7]
console.log(JSON.stringify(arr)) // "[1,3,null,null,null,null,null,7]"
关于javascript - 将项目添加到对象中的数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52865268/