![](/img/trans.png)
[英]How do I add an element at a specific index in Javascript set object?
[英]How do I add an element to a javascript object?
我有一個服務對象,需要將其日志附加到ServiceLogEntries.ID等於ServiceID的位置。
var Services = {
"result": [
{
"ID": 150779,
"ServiceRenderedID": 1,
"ServiceTypeName": "Health Risk Assessment",
"PackageID": 13
},
{
"ID": 150778,
"ServiceRenderedID": 1,
"ServiceTypeName": "Health Risk Assessment",
"PackageID": 13
}
]
};
var ServiceLogEntries = {
"ServiceLogEntries": [
{
"LogID": 229500.0,
"LogStamp": "2015-12-08T18:29:16.137",
"LogServerUser": "Webuser",
"LogActionType": "I",
"ID": 150779
},
{
"LogID": 229501.0,
"LogStamp": "2015-12-08T18:30:07.32",
"LogServerUser": "Webuser",
"LogActionType": "U",
"ID": 150779
},
{
"LogID": 229500.0,
"LogStamp": "2015-12-08T18:29:16.137",
"LogServerUser": "Webuser",
"LogActionType": "I",
"ID": 150778
},
{
"LogID": 229501.0,
"LogStamp": "2015-12-08T18:30:07.32",
"LogServerUser": "Webuser",
"LogActionType": "U",
"ID": 150778
}
]
};
結果應類似於下面的代碼,其中創建了元素“ ServiceLogEntires”並附加了相應的項目。
var Service = {
"result": [
{
"ID": 150779,
"ServiceRenderedID": 1,
"ServiceTypeName": "Health Risk Assessment",
"PackageID": 13
},
{
"ID": 150778,
"ServiceRenderedID": 1,
"ServiceTypeName": "Health Risk Assessment",
"PackageID": 13,
"ServiceLogEntries": [
{
"LogID": 229500.0,
"LogStamp": "2015-12-08T18:29:16.137",
"LogServerUser": "Webuser",
"LogActionType": "I",
"ID": 150778
},
{
"LogID": 229501.0,
"LogStamp": "2015-12-08T18:30:07.32",
"LogServerUser": "Webuser",
"LogActionType": "U",
"ID": 150778
}
]
}
]
我開始遍歷對象很容易,但是我需要獲取整個元素"ServiceLogEntries": [{...}]
。
for (var i = 0; i < Service.result.length; i++) {
var parent = Service.result[i];
for (var a = 0; a < ServiceLogEntries.ServiceLogEntries.length; a++) {
var child = ServiceLogEntries.ServiceLogEntries[a];
if (child.ID === parent.ID) {
parent.push(child);
}
}
}
Services.result.forEach(function (service) {
service.ServiceLogEntries = ServiceLogEntries.ServiceLogEntries.filter(function (entry) {
return entry.ID === service.ID;
});
});
嘗試這個
$(function() { var Services = { "result": [{ "ID": 150779, "ServiceRenderedID": 1, "ServiceTypeName": "Health Risk Assessment", "PackageID": 13 }, { "ID": 150778, "ServiceRenderedID": 1, "ServiceTypeName": "Health Risk Assessment", "PackageID": 13 }] }; var ServiceLogEntries = { "ServiceLogEntries": [{ "LogID": 229500.0, "LogStamp": "2015-12-08T18:29:16.137", "LogServerUser": "Webuser", "LogActionType": "I", "ID": 150779 }, { "LogID": 229501.0, "LogStamp": "2015-12-08T18:30:07.32", "LogServerUser": "Webuser", "LogActionType": "U", "ID": 150779 }, { "LogID": 229500.0, "LogStamp": "2015-12-08T18:29:16.137", "LogServerUser": "Webuser", "LogActionType": "I", "ID": 150778 }, { "LogID": 229501.0, "LogStamp": "2015-12-08T18:30:07.32", "LogServerUser": "Webuser", "LogActionType": "U", "ID": 150778 }] }; $.each(Services.result, function(i, service) { service['ServiceLogEntries'] = ServiceLogEntries.ServiceLogEntries.filter(function(elem) { return elem.ID === service.ID; }); }) console.log(Services); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
您在javascript中使用諸如字典之類的對象,而不是數組,因此您的循環成為
for (var i = 0; i < Service.result.length; i++) {
var parent = Service.result[i];
for (var a = 0; a < ServiceLogEntries.ServiceLogEntries.length; a++) {
var child = ServiceLogEntries.ServiceLogEntries[a];
if (child.ID === parent.ID) {
parent.ServiceLogEntries = child;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.