#javascript #phpstorm #webstorm
#javascript #phpstorm #webstorm
Вопрос:
У меня есть следующий код:
let self = this;
for (const questionIndex in self.questions) {
self.givenAnswers[questionIndex] = "";
}
И PhpStorm жалуется на строку self.givenAnswers[questionIndex] = "";
, в которой говорится, что мне нужно проверить, есть ли у объекта это свойство.
Полное сообщение:
Возможная итерация по неожиданным (пользовательским / унаследованным) элементам, возможно, отсутствует проверка hasOwnProperty.
Но givenAnswers
переменная — это массив, а не объект, и я хочу добавить новый ключ и значения. Как мне удалить предупреждение или что-то не так с кодом?
Ответ №1:
Хотя вы могли бы добавить hasOwnProperty
проверку, чтобы исправить предупреждение:
for (const questionIndex in self.questions) {
if (self.questions.hasOwnProperty(questionIndex)) {
self.givenAnswers[questionIndex] = "";
}
}
Если это массив, я думаю, что итерация от 0 до его длины будет менее подробной:
for (let i = 0; i < self.questions.length; i ) {
self.givenAnswers[i] = "";
}
Комментарии:
1. Хорошо, первый вариант помог мне решить эту проблему. Это действительно кажется мне довольно глупым на стороне PhpStorm — что если я перебираю ключи объекта — у объекта должен быть ключ, и почему тогда он должен жаловаться. oO