文字列のリストまたは単一の文字列を受け入れる関数を作成しようとしています。文字列の場合は、エラーを恐れずにループできるように、1 つの項目のみを含む配列に変換したいと思います。
では、変数が配列であるかどうかをどのように確認すればよいでしょうか?
ベストアンサー1
ECMAScript 標準でObjectのクラスを見つけるために指定されている方法は、toString
のメソッドを使用することですObject.prototype
。
if(Object.prototype.toString.call(someVar) === '[object Array]') {
alert('Array!');
}
または、文字列typeof
かどうかをテストするために次のように使用できます。
if(typeof someVar === 'string') {
someVar = [someVar];
}
または、パフォーマンスを気にしない場合は、concat
新しい空の配列に対して を実行することもできます。
someVar = [].concat(someVar);
直接クエリできるコンストラクターもあります。
if (somevar.constructor.name == "Array") {
// do something
}
チェックアウト徹底的な治療からTJ クラウダーの下記のコメント欄に投稿されているように、彼のブログでは次のように書かれています。
チェックアウトこのベンチマークどの方法がより良いパフォーマンスを発揮するかを知るには:http://jsben.ch/#/QgYAV
から@バラス、文字列を配列に変換するには、ES6質問に対して:
const convertStringToArray = (object) => {
return (typeof object === 'string') ? Array(object) : object
}
仮定する:
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']