Я в цикле добавляю элементы в массив.
Вот упрощенный код:
for (var i = 1; i <= 3; i++) {
if(!arr['foo']) {
arr['foo'] = [];
}
arr['foo'].push('bar');
}
Можно ли как то избежать проверки, перед присваиванием элементов в массив?
В php это делается так:
$arr['foo'][] = 'bar';
Можно заранее инициализировать нужные объекты:
arr = {}
arr['foo'] = []
for (var i = 1; i <= 3; i++) {
arr['foo'].push('bar');
}
console.log(arr)
Или:
items = []
for (var i = 1; i <= 3; i++) {
items.push('bar');
}
arr = {}
arr['foo'] = items
// Или:
// arr = {
// foo: items
// }
console.log(arr)
Без проверки нельзя, потому что метод push()
он же собственно у массива вызывается.
Более короче можно сделать так
var arr = {};
(arr.foo = arr.foo || []).push('bar');
(arr.foo = arr.foo || []).push('bar');
(arr.foo = arr.foo || []).push('bar');
(arr[1] = arr[1] || []).push('bar');
(arr[1] = arr[1] || []).push('bar');
(arr[1] = arr[1] || []).push('bar');
console.log(arr);
Или так
var arr = {};
(arr.foo || (arr.foo = [])).push('bar');
(arr.foo || (arr.foo = [])).push('bar');
(arr.foo || (arr.foo = [])).push('bar');
(arr[1] || (arr[1] = [])).push('bar');
(arr[1] || (arr[1] = [])).push('bar');
(arr[1] || (arr[1] = [])).push('bar');
console.log(arr);
Виртуальный выделенный сервер (VDS) становится отличным выбором
В общем после того как ввожу npm run start в терминал появляется вот такая ошибка
Здравствуйте, пытался понять один вопрос который у меня возник с $broadcast в AngulaJS, но так ничего не понялМое приложение работает, но хочется докопаться...