簡體   English   中英

如何將元素添加到javascript對象?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM