Phương thức được đưa ra trong tiêu chuẩn ECMAScript để tìm lớp Object là sử dụng toString
phương thức từ đó Object.prototype
.
if( Object.prototype.toString.call( someVar ) === '[object Array]' ) {
alert( 'Array!' );
}
Hoặc bạn có thể sử dụng typeof
để kiểm tra nếu đó là Chuỗi:
if( typeof someVar === 'string' ) {
someVar = [ someVar ];
}
Hoặc nếu bạn không quan tâm đến hiệu suất, bạn có thể thực hiện một concat
mảng trống mới.
someVar = [].concat( someVar );
Ngoài ra còn có hàm tạo mà bạn có thể truy vấn trực tiếp:
if (somevar.constructor.name == "Array") {
// do something
}
Kiểm tra một điều trị triệt để từ blog của @TJ Crowder , như được đăng trong bình luận của anh ấy bên dưới.
Kiểm tra điểm chuẩn này để có ý tưởng phương pháp nào hoạt động tốt hơn: http://jsben.ch/#/QgYAV
Từ @Bharath chuyển đổi chuỗi thành mảng bằng Es6 cho câu hỏi được hỏi:
const convertStringToArray = (object) => {
return (typeof object === 'string') ? Array(object) : object
}
giả sử:
let m = 'bla'
let n = ['bla','Meow']
let y = convertStringToArray(m)
let z = convertStringToArray(n)
console.log('check y: '+JSON.stringify(y)) . // check y: ['bla']
console.log('check y: '+JSON.stringify(z)) . // check y: ['bla','Meow']