Я нашел этот пример кода, но хочу посмотреть, как я могу его переписать, используя отдельные операторы, т.е. нужно выяснить правильный синтаксис

//Create the random data
   for (var i = 0; i < 2; i++) {
     var my_object = {};
     my_object.key = i;
     my_object.country = getRandomCountry();
     my_object.value = createRandomValue;
     data.push(my_object);
   }

Я старался

var my_object = {};
my_object(key[0]) = 0;
my_object(country[0]) = "GB";
my_object(value[0]) = 123;
my_object(key[1]) = 1;
my_object(country[1]) = "US";
my_object(value[1]) = 133;

Но это не работает, как можно создать / заполнить массив без цикла for?

0
J Doe 19 Июн 2017 в 13:42

2 ответа

Ваш цикл действительно делает это. Он создает объект в каждой операции, заполняет его и затем помещает в массив. В вашем случае: 2 раза.

var data = [];

// Here starts
var my_object = {};
my_object.key = 0;
my_object.country = getRandomCountry();
my_object.value = createRandomValue;

data.push(my_object);

my_object = {};
my_object.key = 1;
my_object.country = getRandomCountry();
my_object.value = createRandomValue;

data.push(my_object);
1
Suren Srapyan 19 Июн 2017 в 13:47

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

object.property    // dot notation
object['property'] // bracket notation
var array = [],
    my_object;

my_object = {}
my_object[key[0]] = 0;
my_object[country[0]] = "GB";
my_object[value[0]] = 123;
array.push(my_object);

my_object = {}
my_object[key[1]] = 1;
my_object[country[1]] = "US";
my_object[value[1]] = 133;
array.push(my_object);
0
Nina Scholz 19 Июн 2017 в 13:54