2016-01-08 15 views
5

Używam metody mapy do konwersji z obiektu na tablicę. Na czym polega problem z następującym kodem?Nie uzyskiwanie tablicy z obiektu

var data = { 
    "productName": "fsdfsdf", 
    "productDesc": "", 
    "category": null, 
    "categoryName": "", 
    "style": null, 
    "styleName": "", 
    "substyle": null, 
    "substyleName": "", 
    "store": null, 
    "storeName": "", 
    "stand": null, 
    "standName": "", 
    "rack": null, 
    "rackName": "", 
    "roll": null, 
    "rollName": "", 
    "color": null, 
    "width": "", 
    "widthunit": "meter", 
    "length": 0, 
    "lengthunit": "meter", 
    "pieces": "", 
    "cutofquantity": "", 
    "estimatedConsumption": "" 
} 

var key = $.map(data, function(value, index) { 
    return index; 
}); 
var value = $.map(data, function(value, index) { 
    return value; 
}); 

console.log(value) 

Proszę odnieść się do this JSFiddle na żywo np.

+5

To jest dosłownie obiekt, a nie JSON. –

+0

Proszę sprawdzić https://jsfiddle.net/mbbh5xky/4/ można pracować z '$ .each' i' push() ' –

Odpowiedz

0

Można zrobić coś takiego poniżej:

var data = { 
    "productName": "fsdfsdf", 
    "productDesc": "", 
    "category": null, 
    "categoryName": "", 
    "style": null, 
    "styleName": "", 
    "substyle": null, 
    "substyleName": "", 
    "store": null, 
    "storeName": "", 
    "stand": null, 
    "standName": "", 
    "rack": null, 
    "rackName": "", 
    "roll": null, 
    "rollName": "", 
    "color": null, 
    "width": "", 
    "widthunit": "meter", 
    "length": 0, 
    "lengthunit": "meter", 
    "pieces": "", 
    "cutofquantity": "", 
    "estimatedConsumption": "" 
}; 

var arr = Object.keys(data).map(function(k) { return data[k] }); 
console.log(arr) 

Fiddle się bawić: https://jsfiddle.net/u5t4L55g/

+0

Potrzebuję zarówno klucza, jak i wartości. To daje wartość tylko – Deen

+0

@Deen: czy możesz po prostu opublikować, jak powinna wyglądać twoja tablica ... będę ją odpowiednio kształtować – Thalaivar

6

Ponieważ masz length: 0 jako jeden ze swoich właściwości, jQuery uważa, że ​​obiekt jest tablicą zamiast obiekt.

Pętli nad wskaźnikami numerycznymi od 0 do 0 (nie dotyczy) i generuje tablicę o zerowej długości.

+0

Wow .. to było coś wspaniałego ... dzięki – Thalaivar

+0

Dobrze zauważył ... to pewnie dlatego. –

+0

To dlatego Quentin. – Jai

0

Przeprowadź pętlę za pośrednictwem każdego property z object i wypchnij key i value w tablicy, jak poniżej. Mam nadzieję, że to ci pomoże.

var data = { 
 
    "productName": "fsdfsdf", 
 
    "productDesc": "", 
 
    "category": null, 
 
    "categoryName": "", 
 
    "style": null, 
 
    "styleName": "", 
 
    "substyle": null, 
 
    "substyleName": "", 
 
    "store": null, 
 
    "storeName": "", 
 
    "stand": null, 
 
    "standName": "", 
 
    "rack": null, 
 
    "rackName": "", 
 
    "roll": null, 
 
    "rollName": "", 
 
    "color": null, 
 
    "width": "", 
 
    "widthunit": "meter", 
 
    "length": 0, 
 
    "lengthunit": "meter", 
 
    "pieces": "", 
 
    "cutofquantity": "", 
 
    "estimatedConsumption": "" 
 
} 
 

 
var value = []; 
 
var key = []; 
 
for (var property in data) { 
 
    key.push(property); 
 
    value.push(data[property]); 
 
} 
 

 
console.log(value)

-1
var key = Object.keys(data).map(function(index, value) { return index }); 
var value = Object.keys(data).map(function(index, value) { return data[index] }); 

Więc to daje klucz i wartość pary

1

Oto alternatywna, jeśli chcesz korzystać z length:0

var data = { 
 
    "productName": "fsdfsdf", 
 
    "productDesc": "", 
 
    "category": null, 
 
    "categoryName": "", 
 
    "style": null, 
 
    "styleName": "", 
 
    "substyle": null, 
 
    "substyleName": "", 
 
    "store": null, 
 
    "storeName": "", 
 
    "stand": null, 
 
    "standName": "", 
 
    "rack": null, 
 
    "rackName": "", 
 
    "roll": null, 
 
    "rollName": "", 
 
    "color": null, 
 
    "width": "", 
 
    "widthunit": "meter", 
 
    "length": 0, 
 
    "lengthunit": "meter", 
 
    "pieces": "", 
 
    "cutofquantity": "", 
 
    "estimatedConsumption": "" 
 
}; 
 

 

 

 
for(var key in data) { 
 
    if(data.hasOwnProperty(key)) { 
 
     console.log(key) ; 
 
     console.log(data[key]); 
 
    } 
 
} 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Powiązane problemy