簡體   English   中英

如何刪除可觀察的數組中的“未定義”索引?

[英]How do I remove “undefined” index in a Knockout observable array?

            self.previewApplicationsScreeningQuestions = ko.computed(function () {
                return ko.utils.arrayMap(self.applications(), function (i) {
                    if (i.application.applicationKey == self.previewApplicationKey())
                        return i.application.applicantScreeningQuestionsAndResponses[0];
                });
            });

我這樣聲明了一個viewModel。 它的作用是,當滿足特定條件時,它基本上遍歷“應用程序” viewModel,並返回其“ applicantScreeningQuestionsAndResponses [0]”對象(在此問題中不重要)。

當我在控制台中檢查此結果時,它給了我。

[Object, undefined, undefined, undefined, undefined, undefined, undefined]

我只想刪除所有未定義的索引,只在viewModel中保留一個[Object]。 我怎樣才能解決這個問題?

編輯:

            self.previewApplicationsScreeningQuestions = ko.computed(function () {
                return ko.utils.arrayMap(self.applications(), function (i) {
                    if (i.application.applicationKey == self.previewApplicationKey())
                        var arr = i.application.applicantScreeningQuestionsAndResponses[0];
                });
                var newArr = new Array();
                for (var i = 0; i < arr.length; i++) {
                    if (arr[i]) {
                        newArr.push(arr[i]);

                    }

                }
                return newArr;
            });

這將返回所有“未定義”

您可以像下面這樣寫草皮:

 self.previewApplicationsScreeningQuestions = ko.computed(function () {
            return ko.utils.arrayMap(self.applications(), function (i) {
                if (i.application.applicationKey == self.previewApplicationKey() && i.application.applicantScreeningQuestionsAndResponses[0]!=undefined)
                    return i.application.applicantScreeningQuestionsAndResponses[0];
            });
        });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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