簡體   English   中英

在Javascript鍵值對象中,如何從值中刪除引號

[英]In a Javascript key value object, how to remove quotes from value

從遠程數據庫中,我檢索表的模式並獲取以下形式的JSON對象:

{ Id:                 
   { type: 'INT',          
     allowNull: false,     
     defaultValue: null,   
     primaryKey: false },  
  Prefix:                    
   { type: 'NVARCHAR',     
     allowNull: true,      
     defaultValue: null,   
     primaryKey: false },  
  FirstName:               
   { type: 'NVARCHAR',     
     allowNull: true,      
     defaultValue: null,   
     primaryKey: false },  
  Assets:               
   { type: 'INT',          
     allowNull: false,     
     defaultValue: null,   
     primaryKey: false },  
  Role:          
   { type: 'NVARCHAR',     
     allowNull: true,      
     defaultValue: null,   
     primaryKey: false },  
}

我想將每個列的type (在此示例中,Id,前綴,名字,資產,角色)轉換為DataTypes.INTEGERDataTypes.STRING形式,以便最終得到:

 { Id:                 
   { type: DataTypes.INTEGER,          
     allowNull: false,     
     defaultValue: null,   
     primaryKey: false },  
  Prefix:                    
   { type: DataTypes.STRING,     
     allowNull: true,      
     defaultValue: null,   
     primaryKey: false },  
  FirstName:               
   { type: DataTypes.STRING,     
     allowNull: true,      
     defaultValue: null,   
     primaryKey: false },  
  Assets:               
   { type: DataTypes.INTEGER,          
     allowNull: false,     
     defaultValue: null,   
     primaryKey: false },  
  Role:          
   { type: DataTypes.STRING,     
     allowNull: true,      
     defaultValue: null,   
     primaryKey: false },  
}

請注意區別, type值不再是字符串。

最初我嘗試以下操作:

var DataTypes = {
    NVARCHAR: 'STRING',
    INT: 'INTEGER',
    VARCHAR: 'STRING',
    DATETIME: 'DATE',
    FLOAT: 'FLOAT',
    NCHAR: 'STRING'
}

Object.keys(schema).forEach(function(fieldName) {
        types[schema[fieldName]['type']] ? schema[fieldName]['type'] = 'DataTypes.'+types[schema[fieldName]['type']] : console.log('Could not find type: ' + schema[fieldName]['type'])
    })

但隨后我會得到"DataTypes.STRING" ,而不是DataTypes.STRING

我從未使用過您在評論中提到的鏈接Sequelize ,但是快速瀏覽一下他們的文檔可以發現這是您定義新模型的方式:

const WhateverYouWant = sequelize.define('whatever', {
  Id : { type: DataTypes.INTEGER, allowNull: false, 
         defaultValue: null, primaryKey: false},

  // other columns you have...
});

看那個例子,似乎DataTypes是一個對象,而INTEGER是它們庫中的屬性。 因此,如果您引用他們的庫,那么您將能夠使用這些類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM