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

我有一个数组。

["mango-1", "mango-3", "cilantro-3"]

我需要一个新数组,它只从每个芒果项目中获取数字。所以

["1", "3"]

我已经尝试了很多我无法跟踪的事情。有什么帮助吗?


牛魔王的故事
浏览 127回答 2
2回答

慕码人2483693

是的,您好,您可以使用正则表达式替换。由于您的标签是 jQuery,因此可以使用jQuerymap完成:var myArray = ['mango-1', 'mango-3', 'cilantro-3'];var mangos = $.map(myArray, function(val) {&nbsp; &nbsp; match = val.match(/^mango-([0-9]+)$/);&nbsp; &nbsp; 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

拉丁的传说

用于filter()仅获取以 开头的元素mango-,它们映射replace()以删除mango-前缀。let array =&nbsp; ["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) => {&nbsp; if (s.startsWith("mango-")) {&nbsp; &nbsp; a.push(s.replace("mango-", ""));&nbsp; }&nbsp; return a;}, []);console.log(result);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript