var obj={"firstName":"John","lastName":"Smith","isAlive":true,"age":25,"address":{"streetAddress":"21 2nd Street","city":"New York","state":"NY","postalCode":"10021-3100"},"phoneNumbers":[{"type":"home","number":"212 555-1234"},{"type":"office","number":"646 555-4567"},{"type":"mobile","number":"123 456-7890"}],"children":[],"spouse":null};
I want to access the phoneNumbers field So I use
phone=obj.phoneNumbers;
I get an array but without "phoneNumbers" field.I want to get someting like this:
{
"phoneNumbers": [
{
"type": "home",
"number": "212 555-1234"
},
{
"type": "office",
"number": "646 555-4567"
},
{
"type": "mobile",
"number": "123 456-7890"
}
]
}
asked May 31, 2017 at 16:51
YAKOVM
10.3k37 gold badges127 silver badges230 bronze badges
-
and why should this be useful?Jonas Wilms– Jonas Wilms2017年05月31日 16:56:41 +00:00Commented May 31, 2017 at 16:56
-
because my API ask for itYAKOVM– YAKOVM2017年05月31日 16:59:59 +00:00Commented May 31, 2017 at 16:59
-
@Yakov You can check my answer.Umair– Umair2017年05月31日 17:01:47 +00:00Commented May 31, 2017 at 17:01
3 Answers 3
You have to create a new object then
var phone = { "phoneNumbers": obj.phoneNumbers };
Sign up to request clarification or add additional context in comments.
Comments
You can add that part in:
var phone = {"phoneNumbers" : obj.phoneNumbers};
Although there should be a good reason for doing this (like, need to pass it to an API that expects exactly "x"). A single-property object is about as useful as the value of its single property.
answered May 31, 2017 at 16:53
James
22.4k5 gold badges30 silver badges44 bronze badges
Comments
How about making a function and using it for other similar purposes:
function transform (prop, payload) {
return { [prop]: payload };
}
And use it like:
phone = transform('phoneNumbers', obj.phoneNumbers);
answered May 31, 2017 at 16:57
Umair
6,3067 gold badges32 silver badges49 bronze badges
Comments
lang-js