2 回答
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
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);
添加回答
举报