2

次のコードは、Firefox では問題なく動作しますが、Chrome ではエラーが発生します -SyntaxError: Unexpected token [

このコードが特定の div に日付を追加することを期待しています。

var output = document.getElementById('output');
var classes = ['history', 'biology', 'physics'];
var students = 90; 

function getExamDate() {
  return [20, ' March ', 2013, ' 9AM'];
}

var [date, month, year, time] = getExamDate();

output.innerHTML(date + month + year + time);
4

2 に答える 2

3

ワーキングデモ

まだ標準ではないというECMAScript 6機能を使用しています。Array destructuring機能の一部を実装しているのは、chrome や firefox などの最新のブラウザーのみです。オブジェクトをラップする必要がなくなるため、関数から複数の値を返す場合、配列の分割は便利な省略形です。

あなたの場合、次のコード スニペットに示すように、代わりに単純な配列を返すようにコードを微調整できます。

関数を使用isNumberして、配列項目が数値かどうかを確認しました。文字列の場合は、前後の引用符を削除してください。まったく同じ出力で終了します。

var output = document.getElementById('output');
var classes = ['history', 'biology', 'physics'];
var students = 90; 

function getExamDate() {
  return [20, ' March ', 2013, ' 9AM'];
}

var temp = getExamDate();

for(var i = 0; i < temp.length; i++) {
    var str = temp[i];

    if(!isNumber(str)) {
       str = str.replace(/"/g, '');
    }

    console.log(str);
} 

function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}
于 2013-10-11T13:59:07.790 に答える