javascript - json递归函数不发回完整的Json对象
问题描述
我有以下 JsonObject
let jsonObject = {
"augmentedReality": {
"enabled": false,
"augmentedRealitySettings" : [
{
"assetId": 7
}
]
}
}
我写了一个递归函数,看起来如下
isAssetId(jsonObject: any) {
for (let key in jsonObject) {
if (typeof jsonObject[key] === "object") {
jsonObject[key] = this.isAssetId(jsonObject[key]);
} else {
if(key=='assetId'){
jsonObject[key]=3;
}} }
return jsonObject;
}
我的目标是更改 jsonObject 中存在的assetId。这个 JSON 只是一个例子,而assetId 可能更深。代码的问题在于,当它成功执行时,它返回以下 JSON 对象,我使用以下内容调用该函数:
jsonObject= isAssetId(jsonObject);
console.log(jsonObject);
我得到以下结果。
{
augmentedReality: { enabled: false, augmentedRealitySettings: [
[Object] ] }
}
Object
应该显示它没有对象的数据。我无法弄清楚似乎是什么问题。任何帮助,将不胜感激?
更新:我在这里将代码写入以下站点
奇怪的是它在这里
工作正常,但它不适用于我的打字稿NestJs
?现在是什么原因?
解决方案
问题是函数中的“this”关键字。欲了解更多信息,请查看帖子。
let jsonObject = {
"augmentedReality": {
"enabled": false,
"augmentedRealitySettings" : [
{
"assetId": 7
}
]
}
}
var json = isAssetId(jsonObject);
console.log(JSON.stringify(json));
isAssetId(jsonObject) {
for (let key in jsonObject) {
if (typeof jsonObject[key] === "object") {
jsonObject[key] = isAssetId(jsonObject[key]);
} else {
if(key=='assetId'){
jsonObject[key]=3;
}} }
return jsonObject;
}
推荐阅读
- javascript - 如何访问从 MVC 视图中的 ajax 调用调用的控制器返回的数据
- android - Jetpack Compose 中的高度垫片 (HeightSpacer)
- angular - 在 Ionic 4 中使用查询参数
- python - (Maya Python) 如何通过 GUI 函数运行单选选项按钮?
- python - 如何计算 python pandas 数据帧的第一条和最后一条记录之间的时间差异
- azure - Azure 管道“WinRMCustomScriptExtension”基础连接在非公共 VM 中关闭
- python - 在没有附加模块的 lambda 函数中使用反 cos
- vim - 如何在 Vim 中始终将文本保存在缓冲区中>
- excel - 将选项卡组合在一起时设置条件的问题
- css - :not css 选择器未按预期工作