简体   繁体   English

从Javascript中的对象检索数组对象

[英]Retrive array object from object in Javascript

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 我想访问phoneNumbers字段,所以我使用

phone=obj.phoneNumbers;

I get an array but without "phoneNumbers" field.I want to get someting like this: 我得到一个数组,但是没有“ phoneNumbers”字段。我想要这样的东西:

{
  "phoneNumbers": [
    {
      "type": "home",
      "number": "212 555-1234"
    },
    {
      "type": "office",
      "number": "646 555-4567"
    },
    {
      "type": "mobile",
      "number": "123 456-7890"
    }
  ]
}

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"). 尽管这样做有充分的理由(例如,需要将其传递给期望恰好为“ x”的API)。 A single-property object is about as useful as the value of its single property. 单属性对象与它的单个属性的值差不多有用。

您必须先创建一个新对象

var phone = { "phoneNumbers": obj.phoneNumbers };

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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM