2014-02-18 4 views
0

У меня есть следующий код, и я не уверен, почему я получаю сообщение об ошибке `Несоответствие типа»Javascript несоответствие типов ошибок

Если я просто следующее, он работает;

Рабочий код

newTag = tags.AddNew('MyTag0', 'Number0'); 
newTag.Update(); 

Код, который возвращает ошибку

var p = { 
    "MyTag0" : "Number0", 
    "MyTag1" : "Number1" 
}; 

for (var key in p) { 
    if (p.hasOwnProperty(key)) { 
     newTag = tags.AddNew("'" + key + "'" + " , " + "'" + p[key] + "'"); 
     newTag.Update(); 
    } 
} 
+0

Это что-то новое между = и {преднамеренным? – spassvogel

+1

@spassvogel - Это для удобства чтения. – PeanutsMonkey

ответ

2

Они уже строки, вы ОНТ должны создать строку, чтобы попытаться выглядеть как струна ,

newTag = tags.AddNew("'" + key + "'" + " , " + "'" + p[key] + "'"); 

Что выше код приводит в

newTag = tags.AddNew("'MyTag0'", "'Number0'"); 

Он просто должен быть

newTag = tags.AddNew(key, p[key]); 
+0

Спасибо. Мне нужно окружить значения одинарными или двойными кавычками – PeanutsMonkey

+0

Затем используйте символ «\» »escape-последовательности для этого. @ PeanutsMonkey –

+0

@epascarello - Интересно, потому что, когда я его отлаживаю, он не возвращается как' ''MyTag0 '', '' Number0 '' ', а скорее' MyTag0 ',' Number0 ''. Как вы могли получить результат'' 'MyTag0', '' Number0 '"' – PeanutsMonkey

0

использовать что-то вроде этого:

if (p.hasOwnProperty(key)) { 
    var k = "'" + key + "'"; 
    var pk = "'" + p[key] + "'"; 
    newTag = tags.AddNew(k, pk); 
    newTag.Update(); 

}

Другая идея (не в состоянии отлаживать, но вы можете попробовать ..)

+0

Он возвращает ту же ошибку, т. е. несоответствие типа – PeanutsMonkey

+0

Повторите попытку, я обновлю его. @ Pean utsMonkey –

+0

Нет. Он по-прежнему возвращает ту же ошибку. – PeanutsMonkey

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