Конвертировать массив в объект и вставить объект в массив -javascript - PullRequest
0 голосов
/ 30 мая 2018

Я получаю данные массива ответов:

var data =[{
    'id':'1','name':'sam'
}];
var data =[{
    'id':'2','name':'ram'
}];
var data =[{
    'id':'2','name':'ragu'
}];

Я получаю эти данные в циклический метод.Это результаты только моей серверной консоли.Но моя клиентская сторона только просматривает только данные первого массива , поэтому мне нужно преобразовать данные этого массива в объект и передать в другое var = arraydata .

Я попробовал этот код:

            var arrayData =[];
            var  [objectData] = data;
            arrayData.push(objectData);

Я попробовал результат:

var arrayData =[{
            'id':'1','name':'sam'
        }];

но я получаю одиночные данные только

мой ожидаемый результат:

var arrayData =[{
        'id':'1','name':'sam'
    },{
        'id':'2','name':'ram'
    },{
        'id':'2','name':'ragu'
    }];

Пожалуйста, дайте мне какое-нибудь решение!

Ответы [ 8 ]

0 голосов
/ 01 июля 2018

Я думаю, что ваша проблема var arrayData =[];, этот код создания arrayData пуст.

Вы должны использовать var arrayData = arrayData || []; Надеюсь, это поможет вам.

0 голосов
/ 30 мая 2018

ES6

Вы можете использовать [].concat.apply([],[v1,va2.... so on])) для получения требуемого результата.

DEMO

var data =[{'id':'1','name':'sam'}], 
    data1 =[{'id':'2','name':'ram'}], 
    data2 =[{'id':'2','name':'ragu'}];
    
console.log([].concat.apply([],[data,data1,data2]))
.as-console-wrapper {max-height: 100% !important;top: 0;}

Вы также можете использовать Spread_syntax

DEMO

const data =[{'id':'1','name':'sam'}], 
    data1 =[{'id':'2','name':'ram'}], 
    data2 =[{'id':'2','name':'ragu'}];
    
console.log([...data,...data1,...data2])
.as-console-wrapper {max-height: 100% !important;top: 0;}
0 голосов
/ 30 мая 2018

Массив Объектов может быть создан с помощью операторов Spread

var data1 = [{
    'id':'1','name':'sam'
}];

var data2 = [{
    'id':'2','name':'ram'
}];
var data3 =[{
   'id':'2','name':'ragu'
}]; 
var data=[...data1,...data2, data3]

//console.log(data)

Это вернет вам объект JSON [{}, {}, {}]

0 голосов
/ 30 мая 2018

Вы можете попробовать метод Array concat () .

var data1 =[{
    'id':'1','name':'sam'
}];
var data2 =[{
    'id':'2','name':'ram'
}];
var data3 =[{
    'id':'2','name':'ragu'
}];

var arrayData = data1.concat(data2, data3);

console.log(arrayData);

Использование ES6 Назначение деструктурирования :

let data1 =[{
    'id':'1','name':'sam'
}];
let data2 =[{
    'id':'2','name':'ram'
}];
let data3 =[{
    'id':'2','name':'ragu'
}];

[...arrayData] = [...data1, ...data2, ...data3];

console.log(arrayData)
0 голосов
/ 30 мая 2018

попробуйте это,

используйте оператор распространения ES6 и поместите новый объект массива в старый массив.

var data =[{
    'id':'1','name':'sam'
}];
var data1 =[{
    'id':'2','name':'ram'
}];

data.push(...data1)

Надеюсь, это поможет вам:)

0 голосов
/ 30 мая 2018

вы можете использовать .forEatch ()

var data = [{
    'id':'1','name':'sam'
}];

var data2 = [{
    'id':'2','name':'ram'
}];

data2.forEach(element => {
    data.push(element);
});

console.log(data);
0 голосов
/ 30 мая 2018

вы можете объединить все массивы в один ::

предположим, у меня есть 3 массива

var data =[{
'id':'1','name':'sam'

}];var data1 = [{'id': '2', 'name': 'ram'}];var data2 = [{'id': '3', 'name': 'ragu'}];

вы можете получить результат с помощью

var output=data.concat(data1,data)
0 голосов
/ 30 мая 2018

Вы можете использовать .concat() согласно приведенному ниже примеру:

var data1 = [{
    'id':'1','name':'sam'
}];

var data2 = [{
    'id':'2','name':'ram'
}];

var out = [].concat(data1, data2);


// After more data, or one at a time example
var data3 = [{
    'id':'3','name':'ragu'
}];

out = out.concat(data3)

console.log(out);

-> [{
->    'id':'1','name':'sam'
-> },{
->    'id':'2','name':'ram'
-> },{
->     'id':'2','name':'ragu'
-> }];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...