簡體   English   中英

如果字符串匹配,則僅從字符串數組中獲取數字

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM