[英]Get only numbers from array of strings if string matches
我有一個數組。
["mango-1", "mango-3", "cilantro-3"]
我需要一個新數組,它只獲取每個芒果項目的數字。 所以
["1", "3"]
我嘗試了很多我無法跟蹤的事情。 有什么幫助嗎?
是的,您好,您可以使用正則表達式替換。 由於您的標簽是 jQuery,因此可以使用jQuery map
完成:
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"]
或者帶有Array.map
純 javascript
使用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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.