【问题标题】:How to extract array of names from array of email ids如何从电子邮件ID数组中提取名称数组
【发布时间】:2017-11-17 04:05:09
【问题描述】:

给定这个输入数组:

var data = ["ramu@xerago.com","ravi@xerago.com","karthik@xerago.com"];

我要输出一个如下所示的数组:

["ramu","ravi","karthik"];

我已经尝试过了,但它没有产生正确的结果:

names = data.map(s => s.split('@'));

【问题讨论】:

  • 你试过什么?你在哪里遇到问题? Stack Overflow 不是免费的代码编写服务。请添加您尝试的minimal reproducible example
  • 当然 Cerbrus 在我会做之后就在这里
  • 我已经编辑了问题,请从保留中删除@Cerbrus
  • 如您所见,我不是唯一一个投票接近的人。如果这是您尝试过的,为什么不首先添加它?还是您只是从答案中得到的?

标签: javascript regex


【解决方案1】:

您需要使用map,它将通过每个项目。在每个项目中,使用split() 将数据与@ 分开。在split() 之后,你会得到一个数组。您需要返回该数组的第 0 个元素:

var data = ["ramu@xerago.com","ravi@xerago.com","karthik@xerago.com"];

var getNames = data.map(function(item){
  return item.split('@')[0];
});

console.log(getNames);

【讨论】:

  • 为什么投反对票?我看到每个人的答案都被否决了。为什么?
  • 我不知道谁被否决了,我刚刚投了赞成票
  • 也许我们不需要 5 答案来解决像拆分字符串这样微不足道的问题。特别是考虑到问题中缺乏表现出来的努力。
  • @Cerbrus,这更像是换灯泡... ;-)
  • 可能是。但是每个答案都没有详细解释为什么使用mapsplit。无论如何,不​​应拒绝某人为获得正确答案所做的努力。
【解决方案2】:

使用数组映射:

var data = ["ramu@xerago.com","ravi@xerago.com","karthik@xerago.com"];
var newData = data.map(s => s.split('@')[0]);
console.log(newData);

【讨论】:

    【解决方案3】:

    您不需要正则表达式。这可以通过更简单的方式完成

    var data = ["ramu@xerago.com","ravi@xerago.com","karthik@xerago.com"];
    
    var  finalData = data.map(function(email){
        return email.split('@')[0]
    
    }
    

    【讨论】:

      【解决方案4】:

      下面是解决办法

      var names = data.map(email => email.split("@")[0] )
      

      【讨论】:

        猜你喜欢
        • 2020-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-29
        • 1970-01-01
        • 1970-01-01
        • 2016-02-26
        • 1970-01-01
        相关资源
        最近更新 更多