亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JQuery 中有沒有一種方法可以遍歷字符串數組并返回新數組來排序該數組中的匹配字符串?

JQuery 中有沒有一種方法可以遍歷字符串數組并返回新數組來排序該數組中的匹配字符串?

臨摹微笑 2022-12-18 18:51:57
我只是在學習 jQuery,這是我的第一個項目之一,如果這是一個簡單的問題,我深表歉意。所以假設我有一個這樣的數組:const array = ["electric", "fire", "flying", "electric", "water", "electric", "water", "electric", "fire", "flying", "electric", "water"];在這種情況下,我希望能夠返回 4 個新數組,如下所示:[“electric”, “electric”, “electric”, “electric”, “electric”][“fire”, “fire”][“flying”, “flying”][“water”, “water”, “water”] 我已經嘗試閱讀不同的數組方法和一些以前在這里提出的問題,但我沒有看到任何與此相關的內容。
查看完整描述

4 回答

?
郎朗坤

TA貢獻1921條經驗 獲得超9個贊

您可以使用簡單map的方法對項目進行分組:


const array = ["electric", "fire", "flying", "electric", "water", "electric", "water", "electric", "fire", "flying", "electric", "water"];

let map = {};

for(let i = 0; i < array.length; i++){

     let item = array[i];

     if(!map[item])

          map[item] = [ item ];

     else

          map[item].push(item);

}

console.log(Object.values(map));


查看完整回答
反對 回復 2022-12-18
?
莫回無

TA貢獻1865條經驗 獲得超7個贊

您可以使用Array#reduce一個對象來存儲數組中的每個元素,從而創建一個數組數組。


const array = ["electric", "fire", "flying", "electric", "water", "electric", "water", "electric", "fire", "flying", "electric", "water"];

const res = Object.values(

     array.reduce(

      (acc,curr)=>((acc[curr]=acc[curr]||[]).push(curr), acc), {}

     )

);

console.log(res);


查看完整回答
反對 回復 2022-12-18
?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

歡迎來到堆棧溢出。希望你喜歡這里。隨意參加導覽并查看如何提供最小的、可重現的示例

您可以使用數組.map().filter()方法——您真的不需要為此使用 jQuery——如下所示:

let chunks = array.map(a => array.filter(x => x === a))
    .filter((item, index) => array.indexOf(item[0]) === index);

const array = ["electric", "fire", "flying", "electric", "water", "electric", "water", "electric", "fire", "flying", "electric", "water"];

let chunks = array.map(a => array.filter(x => x === a)).filter((item, i) => array.indexOf(item[0]) === i);


console.log( chunks );


查看完整回答
反對 回復 2022-12-18
?
www說

TA貢獻1775條經驗 獲得超8個贊

這應該工作:


const array = ["electric", "fire", "flying", "electric", "water", "electric", "water", "electric", "fire", "flying", "electric", "water"]


console.log(array.reduce((acc, el) => {

    acc[el.charAt(0)] = acc[el.charAt(0)] ? [...acc[el.charAt(0)], el] : [el]; 

    return acc

}, {}))

reduce是元素,然后基于以下內容構建生成的對象:

  1. 如果已經有第一個字母的條目,則推送當前元素

  2. 否則,將當前第一個字母和僅包含當前元素的數組關聯到該條目

注意:你實際上可以將它減少到一個關聯數組,這取決于你哪個更符合你的要求


查看完整回答
反對 回復 2022-12-18
  • 4 回答
  • 0 關注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號