Есть обычный объект:
let obj= {
0: array('a', 'v', 3);
};
В какой-то момент времени я дополняю его
obj[0].push('new');
Но если мне нужно добавить данные в строку объекта, которой еще не было, то я получу ошибку. Так не работает:
obj[7].push('new_str');
Как сделать подобное? Нужно вводить проверку на существование индекса объекта, и если такого нет, то создавать его сначала? Или можно короче?
Добавьте объекту метод:
let obj = { ... };
obj.pushTo = function (index, value) {
if (!this[index])
this[index] = [];
this[index].push(value);
};
, и используйте его одной строкой:
obj.pushTo(7, 'new_str');
Проверка на тип в методе не нужна, потому что если программист сам засунет в объект не-массив, и попытается работать с ним как с массивом - это будет ошибка программиста (и в таких ситуациях должно выбрасываться исключение).
К сожалению нужно проверить существует ли массив и массив ли это((
let obj = {
0: ['a', 'v', 3]
};
obj[0].push('new');
if (Array.isArray(obj[7])) {
obj[7].push('new');
console.log("1", obj);
}
obj[7] = [];
if (Array.isArray(obj[7])) {
obj[7].push('new');
console.log("2", obj);
}
Можно как-то так:
obj[7] ? obj[7].push('new_str') : obj[7] = [],obj[7].push('new_str');
Именно одной командой вот так:
var obj=
{
0: ['a', 'v', 3]
};
//Одновременное создание массива и добавление первой записи:
if(!obj[7])
obj[7] = ['new_str'];
else obj[7].push('new_str');
console.log(obj[7]);
Это можно сделать и без проверки if(!obj[7])
, но тогда будет перезапись массива, если таковой уже есть.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Мне от сервера приходят ссылки на социальные сетиКак правильно заменить текст ссылки (item
Как с помощью javascript или другими способами показать кнопку "Установить"? Мне не смена браузера на хром нужно, а именно эту кнопку показатьПоменяв...
помогите пожалуйста объединить эти 3 скрипта в один, спасибо
Сделал сайт, который комфортно выглядит на мониторе, но на телефоне есть некоторые дискомфортные элементы: