Soru Nesneleri nesne içine nesne içeren nesne nasıl dönüştürülür


Bu benim Nesnem

var data = {
    a:{"0": "1"},
    b:{"1": "2"},
    c:{"2": "3"},
    d:{"3": "4"}
};

Bu beklediğim çıktı

data = [ 
    {"0": "1"},
    {"1": "2"},
    {"2": "3"},
    {"3": "4"}
]

18
2017-11-07 06:47


Menşei


İlk veri yapınız yasal bir javascript değildir. Bunu kullanamazsın. Bir nesne beyanındaki her öğenin bir özellik adı olmalıdır. Dış nesne için özellik isimleri olmayan nesnelerin bir listesi var. FYI, ikinci veri yapısı javascriptte kullanmak için bir acıdır. Hiç bir zaman tek ve farklı bir özelliği olan bir dizi nesne istemezsiniz. Javascript kullanmak ve genellikle yararlı olmayan bir acıdır. - jfriend00
@ jfriend00 Maalesef bir hata mesajı .. - Nick Div
Ardından hedef yapı hakkındaki yorumumu görün. Kötü bir çıktı formatı ve javascript'te kullanmak için bir acı. Neden tüm anahtar / değer çiftlerini tek bir nesneye yerleştirmiyoruz? - jfriend00
Uygulamamda girdiyi istediğim biçimde gerektiren bir üçüncü taraf kitaplığı kullanıyorum. yardım edemem. - Nick Div
Vay, bu yorumlar başımı ağrıtıyor. Nesnelerin bir dizisi "javascriptte kullanmak için acı" nasıldır? Verilen nesneler normalde tümüyle aynı yapıya sahipler, ama sürekli olarak cisimlerden oluşan nesne dizileri kullanıyoruz. - iGanja


Cevaplar:


Bu benim için çalışıyor

var newArrayDataOfOjbect = Object.values(data)


28
2017-10-25 14:14



Bunun IE, Safari, Opera'da desteklenmediğini unutmayın. - Anirudha
İyi bir çözüm, ama @Anirudha IE ile ilgili STILL doğrudur. Wow Microsoft ... - iGanja
Object.values() FireFox'ta desteklenmiyor - Omar


var data = {
    a:{"0": "1"},
    b:{"1": "2"},
    c:{"2": "3"},
    d:{"3": "4"}
};

var myData = Object.keys(data).map(key => {
    return data[key];
})

Bu benim için çalışıyor


4
2017-09-17 21:24



Bu, tüm tarayıcı desteği için en iyi çözüm olarak görünüyor. - iGanja
Hala IE, haritalama ile ilgili sorunlar var. yerine deneyin: var myData = Object.keys (data) .map (function (x) {return data [x];}); - iGanja
Bunu nasıl geri alabiliriz? - Kibotu
Basitleştirilmiş: let myData = Object.keys(data).map(key => data[key]); - Jason Rice


Nesnede her değere bir isim vermelisiniz.

İlk nesneyi düzelttikten sonra, itme ile yapabilirsiniz.

var data = {
    1: {"0": "1"},
    2: {"1": "2"},
    3 : {"2": "3"},
    4: {"3": "4"}
};

var ar = [];
for(item in data){
    ar.push(data[item]);
 }

console.log(ar);

http://jsfiddle.net/nhmaggiej/uobrfke6/


2
2017-11-07 06:55



Tüm Nesne'yi döngülemek yerine başka bir yol var mı diye düşünüyordum. Çünkü bin tane kayıt var. Ama eğer işe yarayacak başka bir şey yoksa bunu kullanabilirim. Teşekkürler.. - Nick Div


var array = [];
for(var item in data){
    // this condition is required to prevent moving forward to prototype chain
    if(data.hasOwnProperty(item)){
        array.push(data[item]);
    } 
}

0
2017-11-07 06:59



@ jfriend00 Lütfen bakın bu soru - Hi I'm Frogatto


İstediğini aldım! İşte çözümün,

var dataObject=[{name:'SrNo',type:'number'}];

Dizi kullanımına erişmek ve saklamak için

dataObject[0].srno=1;
dataObject[0].srno=2;

Umarım ihtiyacın olan budur.


0
2017-11-07 07:26



Bu doğru, çünkü kodumda kullandım. Sen dene, o zaman alacaksın! - Ashitosh birajdar
Bu OP sorusuna herhangi bir cevap vermez, Bu kodlar sadece nesneye yeni bir özellik ekler dataObject[0] - Hi I'm Frogatto


Bu benim için çalıştı. Ve iyi desteklenmiş gibi görünüyor.

toArray(obj_obj) {
    return Object.keys(obj_obj).map(i => obj_obj[i]);
}

https://medium.com/chrisburgin/javascript-converting-an-object-to-an-array-94b030a1604c


0
2017-07-05 13:58