Подтвердить что ты не робот

Значения массива по умолчанию

Есть ли способ присвоить значения по умолчанию массивам в javascript?

ex: an array with 24 slots that defaults to 0

4b9b3361

Ответ 1

Array.prototype.repeat= function(what, L){
 while(L) this[--L]= what;
 return this;
}

var A = [].repeat(0, 24);

оповещения (А)

Ответ 2

var a = Array.apply(null, Array(24)).map(function() { return 0 });

// or:
var a = Array.apply(null, Array(5)).map(Boolean).map(Number);

Ответ 3

Вы можете использовать функцию fill для массива:

Array(24).fill(0)

Примечание: fill был введен только в ECMAScript 2015 (псевдоним "6" ), поэтому поддержка браузера 2017 по-прежнему очень ограничена (например, Internet Explorer).

Ответ 4

Немного многословный, но он работает.

var aray = [ 0, 0, 0, 0, 0, 0,
             0, 0, 0, 0, 0, 0,
             0, 0, 0, 0, 0, 0,
             0, 0, 0, 0, 0, 0 ];

Ответ 5

Если вы используете "очень современный" браузер (проверьте таблицу совместимости), вы можете положиться на fill:

var array = new Array(LENGTH);
array.fill(DEFAULT_VALUE);

По нескольким причинам использование new Array() не оценено многими разработчиками; поэтому вы можете сделать следующее:

var array = [];
for(var i=0; i<LENGTH; ++i) array.push(DEFAULT_VALUE);

Последнее гораздо более совместимо, и, как вы можете видеть, оба решения представлены двумя строками кода.

Ответ 6

Я лично использую:

function replicate (n, x) {
  var xs = [];
  for (var i = 0; i < n; ++i) {
    xs.push (x);
  }
  return xs;
}

Пример:

var hellos = replicate (100, "hello");

Ответ 7

Если вы используете ES6 и выше, вы можете использовать

new Array(24).fill(0);

это также работает:

Array.from({ length: 24}, () => 0)

Ответ 8

Нет.

Вы должны использовать цикл.

var a = new Array(24);
for (var i = a.length-1; i >= 0; -- i) a[i] = 0;

Ответ 10

Используйте Lodash (https://lodash.com/docs), надежную библиотеку для манипулирования массивами, которая также доступна для браузера.

var _ = require('lodash');
var A = _.fill(Array(24), 0);

Ответ 11

[].fill.call({ length: 24 }, 0);

Ответ 12

Самый простой:

myArray = new Array(24).fill(0)

Ответ 13

Синтаксис, который я использую ниже, основан на скрипте ECMA 6/es6

let arr = [];

arr.length = 5; //Размер вашего массива;

[... arr].map(Boolean).map(Number); // трехточечный оператор называется оператором спреда, введенным в ECMA Script 6

------------Another way-------------

let variable_name = new Array (size).fill(initial_value)

для ex- let arr = new Array (5).fill(0) //метод заполнения также введен в es6

Другой способ согласно ECMA 5 или es5

var variable_name = Array.apply(null, Array (size)). map (Boolean).map(Number)

var arr = Array.apply(null, Array (5)). map (Boolean).map(Number);

Все они дадут вам одинаковый результат: [0,0,0,0,0]

Ответ 14

Еще один способ добиться того же -

Array.from(Array(24),()=>5)

Array.from принимает второй параметр в качестве функции карты.

Ответ 15

лучшее и самое быстрое решение:

Array(length of the array).fill(a default value you want put in the array)

пример

Array(5).fill(1)

и результат будет

[1,1,1,1,1]

вы можете положить в него любую понравившуюся вещь:

Array(5).fill({name : ""})

Теперь, если вы хотите изменить некоторые из текущих значений в массиве Вы можете использовать

[the created array ].fill(a new value , start position, end position)

как

[1,1,1,1,1].fill("a",1,3)

и вывод

[1, "a", "a", 1, 1]

Ответ 16

(new Array(5).toString().replace(/,/g, "0,") + "0").split(",")

// ["0", "0", "0", "0", "0"]

Ответ 17

just do it:
//
var a = [];
//Function 'get': to get value of a[index], if a[index] undefined, return '0'
function get(i){
  if (a[i] == null){
   a[i] = 0;
  }
  return a[i];
}
//Use:
var index = 1230020;
console.log(get(index));