javascript - 向对象中的数组添加项
问题描述
我有一个名为featureSet
.
里面featureSet
有很多项,包括一个名为 的数组features
,其中包含其他数组,attributes
。
featureSet.features.attributes
我可以通过在 a 中执行以下操作来添加一个新数组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]"
推荐阅读
- c++ - CMake无法从子文件夹中找到包含文件
- c# - ML.NET 绘制 K 均值聚类结果?
- z3 - 变量的初始值
- python - 为什么我的 django 分页不断返回相同的项目?
- java - 已解决:带有 TabLayout 和 FragmentPagerAdapter 和 ViewPager 的应用程序崩溃
- java - 无法解析 mojo org.apache.maven.plugins:maven-assembly-plugin:3.1.1 的配置
- regex - 使用正则表达式进行智能(迭代和增量)复制和粘贴
- python-3.x - 是否有可能将启动参数传递给 setup.py 测试
- android - 交换片段时是否需要始终重新创建片段?
- android - 切换到另一个应用程序时 Paho Android MQTT 连接丢失