在javascript中输入像table这样的数据

时间:2015-07-09 01:57:36

标签: javascript

我需要字段的元数据。 喜欢这段代码。

var fields =  [
  { code: 'name',     display: 'Name',             isActive: true },
  { code: 'tel',      display: 'Telephone Number', isActive: true },
  { code: 'mobile',   display: 'Mobile',           isActive: true },
  { code: 'email',    display: 'Email address',    isActive: true },
  { code: 'nickname', display: 'Nickname',         isActive: true },
];

有许多领域,所以我很累。 如何写没有属性名称? 我想要像下一个代码那样的流程。

var fieldsString = "
code        | display            | isActive
'name'      | 'Name'             | true
'tel'       | 'Telephone Number' | true
'mobile'    | 'Mobile'           | true
'email'     | 'Email address'    | true
'nickname'  | 'Nickname'         | true
'tel'       | 'Mobile'           | true
";

var tableData = new TableData(fieldsString);
var fields = tableData.getData();

谁知道上面代码的表数据格式?

1 个答案:

答案 0 :(得分:1)

二维数组可以解决这个问题

var keysArray = ['code','display','isActive'];
var fieldArray = [
  ['name'    , 'Name'            , true ],
  ['tel'     , 'Telephone Number', true ],
  ['mobile'  , 'Mobile'          , true ],
  ['email'   , 'Email address'   , true ],
  ['nickname', 'Nickname'        , true ],
  ['tel'     , 'Mobile'          , true ]
];

然后只需使用数组的map函数转换为基于对象的表示Array.prototype.map

var fields=fieldArray.map(function (current) {
  var tempobj = {};
  for(var i=0, len=keyArray.length; i<len; i++){
    tempobj[keyArray[i]] = current[i];
  }
  return tempobj;
}

你可以通过调用reduce Array.protoype.reduce替换tempobj和for循环来使这更简洁