【问题标题】:Convert array into object javascript将数组转换为对象javascript
【发布时间】:2021-06-19 19:52:50
【问题描述】:

朋友们好,我有一个如下的 JSON

 "specifications": [
    {
        "validationPattern": null,
        "itemType": "commerceItem",
        "readAccessRight": null,
        "securityMaskingValue": null,
        "type": "shortText",
        "writeSecurityLevel": null,
        "required": false,
        "writable": true,
        "default": null,
        "audienceVisibility": null,
        "textSearchable": false,
        "writeRole": null,
        "id": "c_promotionIds",
        "dimension": false,
        "shopperWriteable": false,
        "readRole": null,
        "readSecurityLevel": null,
        "length": 254,
        "shopperReadable": false,
        "label": "PromotionIds",
        "writeAccessRight": null,
        "searchable": false,
        "uiEditorType": "shortText",
        "localizable": false,
        "multiSelect": null
    },
    {
        "validationPattern": null,
        "itemType": "commerceItem",
        "readAccessRight": null,
        "securityMaskingValue": null,
        "type": "shortText",
        "writeSecurityLevel": null,
        "required": false,
        "writable": true,
        "default": null,
        "audienceVisibility": null,
        "textSearchable": false,
        "writeRole": null,
        "id": "c_productType",
        "dimension": false,
        "shopperWriteable": false,
        "readRole": null,
        "readSecurityLevel": null,
        "length": 254,
        "shopperReadable": false,
        "label": "ProductType",
        "writeAccessRight": null,
        "searchable": false,
        "uiEditorType": "shortText",
        "localizable": false,
        "multiSelect": null
    },
    {
        "validationPattern": null,
        "itemType": "commerceItem",
        "readAccessRight": null,
        "securityMaskingValue": null,
        "type": "shortText",
        "writeSecurityLevel": null,
        "required": false,
        "writable": true,
        "default": null,
        "audienceVisibility": null,
        "textSearchable": false,
        "writeRole": null,
        "id": "c_itemStatus",
        "dimension": false,
        "shopperWriteable": false,
        "readRole": null,
        "readSecurityLevel": null,
        "length": 254,
        "shopperReadable": false,
        "label": "Item Status",
        "writeAccessRight": null,
        "searchable": false,
        "uiEditorType": "shortText",
        "localizable": false,
        "multiSelect": null
    },
    {
        "validationPattern": null,
        "itemType": "commerceItem",
        "readAccessRight": null,
        "securityMaskingValue": null,
        "type": "number",
        "writeSecurityLevel": null,
        "required": false,
        "writable": true,
        "default": null,
        "minValue": -9.99999999999E11,
        "audienceVisibility": null,
        "textSearchable": false,
        "writeRole": null,
        "id": "c_promotionAmount",
        "dimension": false,
        "shopperWriteable": false,
        "readRole": null,
        "readSecurityLevel": null,
        "maxValue": 9.99999999999E11,
        "length": 12,
        "shopperReadable": false,
        "label": "PromotionAmount",
        "writeAccessRight": null,
        "searchable": false,
        "uiEditorType": "number",
        "localizable": false,
        "multiSelect": null
    },
    {
        "validationPattern": null,
        "itemType": "commerceItem",
        "readAccessRight": null,
        "securityMaskingValue": null,
        "type": "shortText",
        "writeSecurityLevel": null,
        "required": false,
        "writable": true,
        "default": null,
        "audienceVisibility": null,
        "textSearchable": false,
        "writeRole": null,
        "id": "c_inventoryLocation",
        "dimension": false,
        "shopperWriteable": false,
        "readRole": null,
        "readSecurityLevel": null,
        "length": 254,
        "shopperReadable": false,
        "label": "Inventory Location",
        "writeAccessRight": null,
        "searchable": false,
        "uiEditorType": "shortText",
        "localizable": false,
        "multiSelect": null
    },
    {
        "validationPattern": null,
        "itemType": "commerceItem",
        "readAccessRight": null,
        "securityMaskingValue": null,
        "type": "number",
        "writeSecurityLevel": null,
        "required": false,
        "writable": true,
        "default": null,
        "minValue": -9.99999999999E11,
        "audienceVisibility": null,
        "textSearchable": false,
        "writeRole": null,
        "id": "c_couponAmount",
        "dimension": false,
        "shopperWriteable": false,
        "readRole": null,
        "readSecurityLevel": null,
        "maxValue": 9.99999999999E11,
        "length": 12,
        "shopperReadable": false,
        "label": "CouponAmount",
        "writeAccessRight": null,
        "searchable": false,
        "uiEditorType": "number",
        "localizable": false,
        "multiSelect": null
    },
    {
        "validationPattern": null,
        "itemType": "commerceItem",
        "readAccessRight": null,
        "securityMaskingValue": null,
        "type": "shortText",
        "writeSecurityLevel": null,
        "required": false,
        "writable": true,
        "default": null,
        "audienceVisibility": null,
        "textSearchable": false,
        "writeRole": null,
        "id": "c_couponCodes",
        "dimension": false,
        "shopperWriteable": false,
        "readRole": null,
        "readSecurityLevel": null,
        "length": 254,
        "shopperReadable": false,
        "label": "CouponCodes",
        "writeAccessRight": null,
        "searchable": false,
        "uiEditorType": "shortText",
        "localizable": false,
        "multiSelect": null
    },
    {
        "validationPattern": null,
        "itemType": "commerceItem",
        "readAccessRight": null,
        "securityMaskingValue": null,
        "type": "shortText",
        "writeSecurityLevel": null,
        "required": false,
        "writable": true,
        "default": null,
        "audienceVisibility": null,
        "textSearchable": false,
        "writeRole": null,
        "id": "c_couponPromotionIds",
        "dimension": false,
        "shopperWriteable": false,
        "readRole": null,
        "readSecurityLevel": null,
        "length": 254,
        "shopperReadable": false,
        "label": "CouponPromotionIds",
        "writeAccessRight": null,
        "searchable": false,
        "uiEditorType": "shortText",
        "localizable": false,
        "multiSelect": null
    },
    {
        "validationPattern": null,
        "itemType": "commerceItem",
        "readAccessRight": null,
        "securityMaskingValue": null,
        "type": "checkbox",
        "writeSecurityLevel": null,
        "required": false,
        "writable": true,
        "default": null,
        "audienceVisibility": null,
        "textSearchable": false,
        "writeRole": null,
        "id": "c_isINSTALLATIONREQUIRED",
        "dimension": false,
        "shopperWriteable": false,
        "readRole": null,
        "readSecurityLevel": null,
        "length": 19,
        "shopperReadable": false,
        "label": "IsInstallationRequired",
        "writeAccessRight": null,
        "searchable": false,
        "uiEditorType": "checkbox",
        "localizable": false,
        "multiSelect": null
    }
]

我需要像下面这样构造对象

{
  "c_promotionIds" : null,
  "c_productType" : null,
  "c_itemStatus" :null,
  "c_promotionAmount" : null, 
  "c_inventoryLocation" : null, 
  "c_couponAmount" : null,
  "c_couponCodes" : null,
  "c_couponPromotionIds" : null,
  "c_isINSTALLATIONREQUIRED" :null
}

我尝试了如下但没有工作

let comObject = {}, 
for (let index = 0; index < responseData.specifications.length; index++) {
                
                comObject = {
                    responseData.specifications[index].id : null,
                }
            }

知道如何构建这个吗?

【问题讨论】:

  • 我有想法。你可以检查一下。让 comObject = {}; for (let index = 0; index
  • @MaiTruong 是的,它正在工作,谢谢!!!!

标签: javascript arrays json react-native object


【解决方案1】:

您在数组的每次迭代中都覆盖了对象,您需要向对象添加新键并保留您已经分配的键。

另外,要表明id 是键,你需要用括号[] 将它括起来

let comObject = {};
for (let index = 0; index < responseData.specifications.length; index++) {
comObject = {
    ...comObject,
    [responseData.specifications[index].id] : null,
            }
 }

数组原型中有一个名为reduce的方法就是为这种操作而设计的。

【讨论】:

    【解决方案2】:

    试试这个:

    const  specifications = [
        {
            "validationPattern": null,
            "itemType": "commerceItem",
            "readAccessRight": null,
            "securityMaskingValue": null,
            "type": "shortText",
            "writeSecurityLevel": null,
            "required": false,
            "writable": true,
            "default": null,
            "audienceVisibility": null,
            "textSearchable": false,
            "writeRole": null,
            "id": "c_promotionIds",
            "dimension": false,
            "shopperWriteable": false,
            "readRole": null,
            "readSecurityLevel": null,
            "length": 254,
            "shopperReadable": false,
            "label": "PromotionIds",
            "writeAccessRight": null,
            "searchable": false,
            "uiEditorType": "shortText",
            "localizable": false,
            "multiSelect": null
        },
        {
            "validationPattern": null,
            "itemType": "commerceItem",
            "readAccessRight": null,
            "securityMaskingValue": null,
            "type": "shortText",
            "writeSecurityLevel": null,
            "required": false,
            "writable": true,
            "default": null,
            "audienceVisibility": null,
            "textSearchable": false,
            "writeRole": null,
            "id": "c_productType",
            "dimension": false,
            "shopperWriteable": false,
            "readRole": null,
            "readSecurityLevel": null,
            "length": 254,
            "shopperReadable": false,
            "label": "ProductType",
            "writeAccessRight": null,
            "searchable": false,
            "uiEditorType": "shortText",
            "localizable": false,
            "multiSelect": null
        },
        {
            "validationPattern": null,
            "itemType": "commerceItem",
            "readAccessRight": null,
            "securityMaskingValue": null,
            "type": "shortText",
            "writeSecurityLevel": null,
            "required": false,
            "writable": true,
            "default": null,
            "audienceVisibility": null,
            "textSearchable": false,
            "writeRole": null,
            "id": "c_itemStatus",
            "dimension": false,
            "shopperWriteable": false,
            "readRole": null,
            "readSecurityLevel": null,
            "length": 254,
            "shopperReadable": false,
            "label": "Item Status",
            "writeAccessRight": null,
            "searchable": false,
            "uiEditorType": "shortText",
            "localizable": false,
            "multiSelect": null
        },
        {
            "validationPattern": null,
            "itemType": "commerceItem",
            "readAccessRight": null,
            "securityMaskingValue": null,
            "type": "number",
            "writeSecurityLevel": null,
            "required": false,
            "writable": true,
            "default": null,
            "minValue": -9.99999999999E11,
            "audienceVisibility": null,
            "textSearchable": false,
            "writeRole": null,
            "id": "c_promotionAmount",
            "dimension": false,
            "shopperWriteable": false,
            "readRole": null,
            "readSecurityLevel": null,
            "maxValue": 9.99999999999E11,
            "length": 12,
            "shopperReadable": false,
            "label": "PromotionAmount",
            "writeAccessRight": null,
            "searchable": false,
            "uiEditorType": "number",
            "localizable": false,
            "multiSelect": null
        },
        {
            "validationPattern": null,
            "itemType": "commerceItem",
            "readAccessRight": null,
            "securityMaskingValue": null,
            "type": "shortText",
            "writeSecurityLevel": null,
            "required": false,
            "writable": true,
            "default": null,
            "audienceVisibility": null,
            "textSearchable": false,
            "writeRole": null,
            "id": "c_inventoryLocation",
            "dimension": false,
            "shopperWriteable": false,
            "readRole": null,
            "readSecurityLevel": null,
            "length": 254,
            "shopperReadable": false,
            "label": "Inventory Location",
            "writeAccessRight": null,
            "searchable": false,
            "uiEditorType": "shortText",
            "localizable": false,
            "multiSelect": null
        },
        {
            "validationPattern": null,
            "itemType": "commerceItem",
            "readAccessRight": null,
            "securityMaskingValue": null,
            "type": "number",
            "writeSecurityLevel": null,
            "required": false,
            "writable": true,
            "default": null,
            "minValue": -9.99999999999E11,
            "audienceVisibility": null,
            "textSearchable": false,
            "writeRole": null,
            "id": "c_couponAmount",
            "dimension": false,
            "shopperWriteable": false,
            "readRole": null,
            "readSecurityLevel": null,
            "maxValue": 9.99999999999E11,
            "length": 12,
            "shopperReadable": false,
            "label": "CouponAmount",
            "writeAccessRight": null,
            "searchable": false,
            "uiEditorType": "number",
            "localizable": false,
            "multiSelect": null
        },
        {
            "validationPattern": null,
            "itemType": "commerceItem",
            "readAccessRight": null,
            "securityMaskingValue": null,
            "type": "shortText",
            "writeSecurityLevel": null,
            "required": false,
            "writable": true,
            "default": null,
            "audienceVisibility": null,
            "textSearchable": false,
            "writeRole": null,
            "id": "c_couponCodes",
            "dimension": false,
            "shopperWriteable": false,
            "readRole": null,
            "readSecurityLevel": null,
            "length": 254,
            "shopperReadable": false,
            "label": "CouponCodes",
            "writeAccessRight": null,
            "searchable": false,
            "uiEditorType": "shortText",
            "localizable": false,
            "multiSelect": null
        },
        {
            "validationPattern": null,
            "itemType": "commerceItem",
            "readAccessRight": null,
            "securityMaskingValue": null,
            "type": "shortText",
            "writeSecurityLevel": null,
            "required": false,
            "writable": true,
            "default": null,
            "audienceVisibility": null,
            "textSearchable": false,
            "writeRole": null,
            "id": "c_couponPromotionIds",
            "dimension": false,
            "shopperWriteable": false,
            "readRole": null,
            "readSecurityLevel": null,
            "length": 254,
            "shopperReadable": false,
            "label": "CouponPromotionIds",
            "writeAccessRight": null,
            "searchable": false,
            "uiEditorType": "shortText",
            "localizable": false,
            "multiSelect": null
        },
        {
            "validationPattern": null,
            "itemType": "commerceItem",
            "readAccessRight": null,
            "securityMaskingValue": null,
            "type": "checkbox",
            "writeSecurityLevel": null,
            "required": false,
            "writable": true,
            "default": null,
            "audienceVisibility": null,
            "textSearchable": false,
            "writeRole": null,
            "id": "c_isINSTALLATIONREQUIRED",
            "dimension": false,
            "shopperWriteable": false,
            "readRole": null,
            "readSecurityLevel": null,
            "length": 19,
            "shopperReadable": false,
            "label": "IsInstallationRequired",
            "writeAccessRight": null,
            "searchable": false,
            "uiEditorType": "checkbox",
            "localizable": false,
            "multiSelect": null
        }
    ];
    
    const result = {};
    specifications.forEach(spec => result[spec.id] = null);
    
    console.log(result);

    【讨论】:

      猜你喜欢
      • 2019-10-22
      • 1970-01-01
      • 2021-05-07
      • 2021-01-15
      • 2017-11-13
      • 2014-02-04
      • 2012-03-04
      • 2017-08-03
      相关资源
      最近更新 更多