簡體   English   中英

如何檢查Javascript對象是否包含數組作為屬性值?

[英]How to check if a Javascript object contains an array as a value for an attribute?

我有一個來自表單數據的對象(使用快速車把的javascript),可以是以下之一:

object1 = { name: "Grade1", section: "A", courses: [ "Eng", "Math", "Sci"] }

要么

object2 = { name: "Grade1", section: "A", courses: "Sci" }

如何確定courses屬性是包含數組還是單個值? 還是有一種方法可以始終將屬性courses的數據作為數組發送給屬性courses (即使它是單個課程)?

謝謝。

您可以使用instanceoftypeof運算符:

要檢查其是否為數組:

if (object.courses instanceof Array) {
  ···
}

要檢查其是否為字符串:

if (typeof object.courses === 'string') {
  ···
}

您也可以使用isArray方法。 請注意說明了為什么您可能要使用此方法而不是instanceOf文檔

檢查Array實例時, Array.isArray優於instanceof因為它通過iframes起作用。

根據您的用例(假設您使用的是瀏覽器),您可能更喜歡此方法,並且如果還沒有使用它,則可以將其作為數組發送。 就像是:

var object1 = { name: "Grade1", section: "A", courses: [ "Eng", "Math", "Sci"] };
var object2 = { name: "Grade1", section: "A", courses: "Sci" };

console.log(object2.courses);

if (!Array.isArray(object2.courses)) {
    object2.courses = [object2.courses];
 }

 console.log(object2.courses);

您可以使用typeof來檢查object1.courses是數組還是字符串。

有多種方法可以確保您在接收數據時課程始終是一個數組。

暫無
暫無

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

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