Используйте Array.prototype.push
метод для добавления значений к массиву:
// initialize array
var arr = [
"Hi",
"Hello",
"Bonjour"
];
// append new value to the array
arr.push("Hola");
console.log(arr);
можно использовать эти push()
функция для добавления больше чем одного значения к массиву в единственном вызове:
// initialize array
var arr = ["Hi", "Hello", "Bonjour", "Hola"];
// append multiple values to the array
arr.push("Salut", "Hey");
// display all values
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
Обновление
, Если Вы хотите добавить объекты одного массива к другому массиву, можно использовать firstArray.concat(secondArray)
:
var arr = [
"apple",
"banana",
"cherry"
];
arr = arr.concat([
"dragonfruit",
"elderberry",
"fig"
]);
console.log(arr);
Обновление
Просто дополнение к этому ответу, если Вы хотите добавить какое-либо значение к запуску массива, который означает для первого индекса тогда, что можно использовать Array.prototype.unshift
с этой целью.
var arr = [1, 2, 3];
arr.unshift(0);
console.log(arr);
Это также поддерживает добавление нескольких значений сразу точно так же, как push
.
Я только читал об этой теме в «Хорошо обоснованный рубист» (между прочим, великая книга). Автор объясняет лучше, чем я, поэтому я процитирую его:
Ни одно правило или формула не всегда приводит к правильному замыслу. Но полезно держать Когда вы принимаете решение о выборе класса и модуля, помните о нескольких соображениях:
У модулей нет экземпляров. Отсюда следует, что сущности или вещи обычно лучше моделируются в классах, а характеристики или свойства сущностей или вещей лучше всего инкапсулировать в модули. Соответственно, как указано в разделе 4.1.1, класс имена, как правило, являются существительными, тогда как имена модулей часто являются прилагательными (Stack против Stacklike).
Класс может иметь только один суперкласс, но он может смешивать столько модулей, сколько хочет. Если вы используете наследование, отдайте приоритет созданию разумного суперкласса / подкласса отношения. Не используйте одно-единственное отношение суперкласса к наделите класс тем, что может оказаться лишь одним из нескольких наборов характеристик.
Суммируя эти правила в одном примере, вот чего вам не следует делать:
module Vehicle
...
class SelfPropelling
...
class Truck < SelfPropelling
include Vehicle
...
Скорее, вы должны сделать это:
module SelfPropelling
...
class Vehicle
include SelfPropelling
...
class Truck < Vehicle
...
Вторая версия моделирует сущности и свойства гораздо более аккуратно. Грузовая машина происходит от Vehicle (что имеет смысл), тогда как SelfPropelling является характеристикой транспортных средств (по крайней мере, всех тех, о которых мы заботимся в этой модели мира) - характеристикой, которая передается грузовикам в силу того, что Truck является потомком, или специализированный форма транспортного средства.
Ответ на ваш вопрос во многом зависит от контекста. Исходя из наблюдений pubb, выбор в первую очередь определяется рассматриваемым доменом.
И да, ActiveRecord должен был быть включен, а не расширен подклассом. Другой ORM - datamapper - точно этого достигает!
ActiveRecord должен был быть включен, а не расширен подклассом. Другой ORM - datamapper - точно этого добивается! ActiveRecord должен был быть включен, а не расширен подклассом. Другой ORM - datamapper - точно этого добивается! Прямо сейчас я думаю о шаблоне проектирования
. С модулем было бы неправильно.
Мое мнение: модули предназначены для совместного использования, а классы предназначены для моделирования отношений между объектами. Технически вы могли бы просто сделать все экземпляром Object и смешать любые модули, которые вы хотите получить, чтобы получить желаемый набор поведения, но это будет плохой, случайный и довольно нечитаемый дизайн.