为了账号安全,请及时绑定邮箱和手机立即绑定

如果字符串匹配,则仅从字符串数组中获取数字

如果字符串匹配,则仅从字符串数组中获取数字

牛魔王的故事 2023-03-24 15:17:08
我有一个数组。["mango-1", "mango-3", "cilantro-3"]我需要一个新数组,它只从每个芒果项目中获取数字。所以["1", "3"]我已经尝试了很多我无法跟踪的事情。有什么帮助吗?
查看完整描述

2 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

是的,您好,您可以使用正则表达式替换。由于您的标签是 jQuery,因此可以使用jQuerymap完成:


var myArray = ['mango-1', 'mango-3', 'cilantro-3'];


var mangos = $.map(myArray, function(val) {

    match = val.match(/^mango-([0-9]+)$/);

    return match && match[1];

});


console.log(mangos);

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

结果是:


["1", "3"]

或者纯javascriptArray.map


查看完整回答
反对 回复 2023-03-24
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

用于filter()仅获取以 开头的元素mango-,它们映射replace()以删除mango-前缀。


let array =  ["mango-1", "mango-3", "cilantro-3"];

let result = array.filter(s => s.startsWith("mango-")).map(s => s.replace("mango-", ""));

console.log(result);


或用于reduce()在单个回调函数中同时进行测试和替换。


let array = ["mango-1", "mango-3", "cilantro-3"];

let result = array.reduce((a, s) => {

  if (s.startsWith("mango-")) {

    a.push(s.replace("mango-", ""));

  }

  return a;

}, []);

console.log(result);


查看完整回答
反对 回复 2023-03-24
  • 2 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信