【问题标题】:need help in adding objects to array在将对象添加到数组时需要帮助
【发布时间】:2015-09-25 20:28:25
【问题描述】:

我正在从文本文件中获取数据,需要帮助将信息转化为对象..

数组:

['celestine,timmy,celestinetimmy93@gmail.com,repeat 124\narun,mohan,reach@gmail.com,repeat 124213\njobi,mec,mec@gmail.com,rave\njalal,muhammed,jallu@gmail.com,rave1231212321\nvineeth,mohan,get,rave1231212321\n' ]

我需要一个对象中的值直到 \n

预期结果:

    [{'celestine,timmy,celestinetimmy93@gmail.com,repeat 124}
                                              {arun,mohan,reach@gmail.com,repeat 124213}

{jalal,muhammed,jallu@gmail.com,rave1231212321}
                                                 {vineeth,mohan,get,rave1231212321} ]

【问题讨论】:

  • 使用正则表达式。
  • 你自己尝试过什么吗?
  • 你应该只看拆分和替换函数。
  • 预期输出不符合任何标准。其数组对象的格式非法且错误

标签: javascript json node.js


【解决方案1】:

你可以这样做。

应用 '\n'

拆分后
 ['celestine,timmy,celestinetimmy93@gmail.com,repeat
 124\narun,mohan,reach@gmail.com,repeat
  124213\njobi,mec,mec@gmail.com,rave\njalal,muhammed,jallu@gmail.com,rave1231212321\nvineeth,mohan,get,rave1231212321\n'
 ]

你会得到一个一维数组。

["celestine,timmy,celestinetimmy93@gmail.com,repeat 124", "arun,mohan,reach@gmail.com,repeat 124213", "jobi,mec,mec@gmail.com,rave", "jalal,muhammed,jallu@gmail.com,rave1231212321", "vineeth,mohan,get,rave1231212321", ""]

然后循环它以获取每个单独的记录。

JS:

var test = ['celestine,timmy,celestinetimmy93@gmail.com,repeat 124\narun,mohan,reach@gmail.com,repeat 124213\njobi,mec,mec@gmail.com,rave\njalal,muhammed,jallu@gmail.com,rave1231212321\nvineeth,mohan,get,rave1231212321\n' ]
var arrString = [];
test.forEach(function(val,key){  
        arrString = val.split('\n')
        });
console.log(arrString);
arrString.forEach(function(val,key){
    console.log(val.split(','));
})

【讨论】:

    【解决方案2】:

    为了创建对象,您需要将花括号内的字符串格式化为键值对字典。我不确定您的情况是什么键或值。但是,如果我假设键是“键”并且值是文本,那么:

    var txt = 'celestine,timmy,celestinetimmy93@gmail.com,repeat 124\narun,mohan,reach@gmail.com,repeat 124213\njobi,mec,mec@gmail.com,rave\njalal,muhammed,jallu@gmail.com,rave1231212321\nvineeth,mohan,get,rave1231212321\n';
    
    // Use trim, to remove the trailing whitespace, in your case a '\n'
    // Use split to convert the text into an array of elements
    var arr = txt.trim().split('\n');
    
    // Use the map function to map each string to an object
    var objects = arr.map(function(element) {
                  return { key: element};
              });
    

    这是输出:

    objects = [ { key: 'celestine,timmy,celestinetimmy93@gmail.com,repeat 124' },
      { key: 'arun,mohan,reach@gmail.com,repeat 124213' },
      { key: 'jobi,mec,mec@gmail.com,rave' },
      { key: 'jalal,muhammed,jallu@gmail.com,rave1231212321' },
      { key: 'vineeth,mohan,get,rave1231212321' } ]
    

    【讨论】:

      【解决方案3】:

      试试这个想法。

      var x = "celestine,timmy,celestinetimmy93@gmail.com,repeat 124\narun,mohan,reach@gmail.com,repeat 124213\njobi,mec,mec@gmail.com,rave\njalal,muhammed,jallu@gmail.com,rave1231212321\nvineeth,mohan,get,rave1231212321\n";
         var y = x.split("\n");
      

      实现剩下的部分。使用循环将数组数组转换为对象数组

      【讨论】:

      • 令人惊讶的是-ve投票是什么原因兄弟。解释一下
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-16
      • 1970-01-01
      • 2021-06-22
      相关资源
      最近更新 更多