gpt4 book ai didi

javascript - 无法在 JS 中字符串化对象数组

转载 作者:行者123 更新时间:2023-12-03 02:13:34 24 4
gpt4 key购买 nike

我对 Javascript 很着迷,因为我无法让 JSON.stringify 与简单的对象数组一起工作。我在谷歌上搜索过类似的问题,但没有解决我的问题。

这是代码:

console.log(array);
console.log(typeof array);
console.log(Array.isArray(array));
console.log(JSON.stringify(array));

这里是输出:

Console output

所以第一行是正确的,这是一个对象数组。第二行对我来说是错误的,但由于 Javascript 它似乎是正确的。第三行是正确的。第四行不正确,数组被字符串化为空对象?

我可能错过了一件愚蠢的事情,但我真的不知道是什么。

谢谢

编辑:这是我之前如何全局创建数组的

var array = [];
...
array.push(obj);

EDIT2:完整代码

sendCameras= function(cameraArray){
var message = {};
message.cameras = cameraArray;
console.log("----------------");
console.log(cameraArray);
console.log(typeof cameraArray);
console.log(Array.isArray( cameraArray));
console.log(cameraArray.length);
console.log(JSON.stringify({cameraArray:Array}));
event.source.postMessage(JSON.stringify(message), event.origin);
}

调用前一个函数的代码的第二部分:

openCamerasByNames= function(cameras){
var cameraToOpen = [];
var openCamerasByIdFromNames =function (){
external_bloc :for (let i = 0; i < cameras.length; i++){
internal_bloc :for (let j = 0; j < cameraList.cameras.length; j++){
if (cameraList.cameras[j].name == cameras[i].name){
openCameraById(cameraList.cameras[j].id);
cameraToOpen.push(cameraList.cameras[j]);
break internal_bloc;
}
}
}
}
sendCameras(cameraToOpen);
...

EDIT3:cameraList是从JSON.parse创建的

最佳答案

您正在字符串化一个对象{},而不是实际的数组。

let cameraArray = [{myObj:"some content"}];

//wrong
console.log(JSON.stringify({cameraArray:Array}));
console.log("array? ", Array.isArray({cameraArray:Array}));

//right
console.log(JSON.stringify(cameraArray));
console.log("array? ", Array.isArray(cameraArray));

关于javascript - 无法在 JS 中字符串化对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49452697/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com