2014-09-07 7 views
1

Я получаю эту странную ошибку.ОШИБКА: Uncaught SyntaxError: Неожиданный токен [

Uncaught SyntaxError: Unexpected token [ 

Я не знаю, почему возникает эта ошибка.

Может ли кто-нибудь рассказать мне, почему возникает эта ошибка и как ее решить?

sortedArray.push({filteredKeys[i]:_analyzedDataSet[filteredKeys[i]]}); 

Эта ошибка возникает на этой строке выше.

console.log("filteredKeys[i]:%s", filteredKeys[i]); 

Однако эта линия выше работает нормально.

console.log("_analyzedDataSet[filteredKeys[i]]:%s", _analyzedDataSet[filteredKeys[i]]); 

Кроме того, эта линия выше работает нормально.

var filteredKeys = []; 

filteredKeys = sortThis(_analyzedDataSet); 

var sortedArray = []; 
for (var i = 0; i < filteredKeys.length; i++){ 

    //This doesn't cause an error. 
    console.log("filteredKeys[i]:%s", filteredKeys[i]); 

    //This doesn't cause an error as well. 
    console.log("_analyzedDataSet[filteredKeys[i]]:%s", _analyzedDataSet[filteredKeys[i]]); 

    //But, this cause an error!! 
    sortedArray.push({filteredKeys[i]:_analyzedDataSet[filteredKeys[i]]}); 
} 
+0

Что вы пытаетесь сделать с этой двоеточием? –

+0

двоеточие - это разделитель для ключа и значения. {"Ключ": "значение} – W3Q

+0

См. Https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object" Параметры nameValuePair1, nameValuePair2, ... nameValuePairN Пары имен ** (строки) ** и значения (любое значение), где имя отделяется от значения двоеточием. " – guest271314

ответ

3

Вы не можете добавлять динамические ключи к объекту при использовании объектной литерала. Сначала создайте объект и добавьте ключ, используя нотацию массива

var newObj = {}; 
newObj[filteredKeys[i]] = _analyzedDataSet[filteredKeys[i]]; 
sortedArray.push(newObj); 
+0

OK! Спасибо, я попробую теперь :) – W3Q

+1

> не может добавлять динамические ключи к объекту при использовании объектной литературной нотации Я не знал этого. – W3Q

+0

Да, он не собирается оценивать ключ в объектном литерале для возвращаемого значения и назначьте это ключу. Он пытался добавить к объекту ключ, буквально называемый «filterKeys [i]», но не понравился квадратный скобок в идентификаторе. – JeremyWeir

Смежные вопросы