我有一个来自表单数据的对象(使用快速手柄的javascript),可以是以下之一:
object1 = { name: "Grade1", section: "A", courses: [ "Eng", "Math", "Sci"] }
OR
object2 = { name: "Grade1", section: "A", courses: "Sci" }
如何确定courses
属性是包含数组还是单个值?
或者有没有办法将表单中的数据作为属性courses
的数组始终发送(即使它是单个课程)?
感谢。
答案 0 :(得分:3)
您可以使用instanceof
或typeof
运算符:
检查是否为数组:
if (object.courses instanceof Array) {
···
}
检查字符串是否为
if (typeof object.courses === 'string') {
···
}
答案 1 :(得分:2)
您还可以使用isArray
方法。请注意documentation,它解释了为什么您可能希望使用此方法而不是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);
答案 2 :(得分:-1)
您可以使用typeof
检查object1.courses
是数组还是字符串。
有些方法可以确保在收到数据时课程始终是一个数组。