[英]How to access an object deep inside another object
我有一個對象,它具有一個被隱藏在外部對象六層深處的系數屬性。
我需要將整個對象傳遞給我們后端的一個 PHP 文件,以處理它以將其輸入到我們的 MySQL 數據庫中。
我似乎無法通過使用深度克隆(使用 LoDash)或擴展運算符{...}
或JSON.parse(JSON.stringify(obj));
來獲取整個對象JSON.parse(JSON.stringify(obj));
.
在每種情況下,我最終都會得到一組空白的方括號,其中包含我感興趣的數據。
我最終得到的是這個(參見系數的最后一個空白條目):
{
"dostuff": "saveCalibrationStart",
"debug": true,
"configurationID": 0,
"computername": "REDACTED",
"username": "REDACTED",
"notes": "none",
"softwarename": "CalRun",
"softwareversion": "V12.0.0 beta > 1.13",
"systemid": "42",
"devices": [
{
"modelNumberID": "12",
"serialNumber": "09998",
"position": 1
}
],
"references": [
{
"modelNumberID": "12",
"calibrationDeviceTypeID": 11,
"serialNumber": "09999",
"measurands": [
{
"measurementTypeID": "13",
"measurand": "Phenanthrene",
"calibrationDate": "2019-01-01",
"coefficients": []
}
]
}
]
}
這個人在傳播運算符上的頁面似乎很有希望,但我得到了同樣的東西: https : //flaviocopes.com/javascript-spread-operator/
進一步的實驗表明,無論我做什么,我最終都會得到系數的空數組,它們應該如下所示:
如果我將對象保存為全局變量 (Chrome),我就可以像這樣訪問、更改和操作系數的元素:
temp1.references[0].measurands[0].coefficients
這似乎是一項簡單的任務,抓取對象,將其轉換為 JSON 並將其交給后端進行處理,但它已經讓我煩惱了幾天。
如果我使用您的代碼片段並將系數設置為等於[1,2,3,4]
,它會起作用:
const temp1= {"dostuff":"saveCalibrationStart","debug":true,"configurationID":0,"computername":"REDACTED","username":"REDACTED","notes":"none","softwarename":"CalRun","softwareversion":"V12.0.0 beta 1.13","systemid":"42","devices":[{"modelNumberID":"12","serialNumber":"09998","position":1}],"references":[{"modelNumberID":"12","calibrationDeviceTypeID":11,"serialNumber":"09999","measurands":[{"measurementTypeID":"13","measurand":"Phenanthrene","calibrationDate":"2019-01-01","coefficients":[1,2,3,4]}]}]}; console.log(temp1.references[0].measurands[0].coefficients);
但是您發布的內容確實為系數提供了一個空數組。 我想你可能對你的數據是什么和/或它何時被填充有點困惑
根據 OP 的要求,我將嘗試提供我建議的答案。
您似乎將系數聲明為數組,但無論您在哪里填充系數,您都將其視為對象。
如果你正在使用 .push 你可能會做這樣的事情:
coefficients.push(
drift: value,
offset: value,
etc etc
)
我相信,您需要在填充它的地方做的就是將 .push 數據包裝到一個實際對象中。
coefficients.push({
drift: value,
offset: value,
etc etc
})
我希望這會有所幫助,如果不查看填充系數的位置,很難為您提供確切的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.