最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

通過js把一個數(shù)組修改成多層嵌套多個數(shù)組的幾種方法總結(jié)

 更新時間:2023年06月29日 09:56:05   作者:前端代碼の搬運工  
這篇文章主要介紹了通過js把一個數(shù)組修改成多層嵌套多個數(shù)組的幾種方法總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

通過js把一個數(shù)組修改成多層嵌套多個數(shù)組

首先一級與二級相同的嵌套

let arr = [
? ? ?{ date: '2020-01-06', age: '18'},
? ? ?{ date: '2020-01-06', age: '25'},
? ? ?{ date: '2020-01-07', age: '34'},
? ? ?{ date: '2020-01-07', age: '18'},
? ? ?{ date: '2020-01-07', age: '38'},
? ? ?{ date: '2020-01-08', age: '26'},
? ? ?{ date: '2020-01-09', age: '24'}
? ?]
let dataArr = [];
? ? arr.map(mapItem => {
? ? ? if (dataArr.length == 0) {
? ? ? ? ? dataArr.push({ date: mapItem.date, List: [mapItem] })
? ? ? } else {
? ? ? ? ?let res = dataArr.some(item=> {//判斷相同日期,有就添加到當前項
? ? ? ? ? if (item.date == mapItem.date) {
? ? ? ? ? ? item.List.push(mapItem)
? ? ? ? ? ? return true
? ? ? ? ? }
? ? ? ? })
? ? ? ? if (!res) {//如果沒找相同日期添加一個新對象
? ? ? ? ? dataArr.push({ date: mapItem.date, List: [mapItem] })
? ? ? ? }
? ? ? }
? ? })

結(jié)果

dataArr = [
? ? ? ? {
? ? ? ? ? ? date:'2020-01-06',
? ? ? ? ? ? List: [
? ? ? ? ? ? ? ? { date: '2020-01-06', age: '18'},
? ? ? ? ? ? ? ? { date: '2020-01-06', age: '25'}
? ? ? ? ? ? ]
? ? ? ? },
? ? ? ? {
? ? ? ? ? ? date:'2020-01-07',
? ? ? ? ? ? List: [
? ? ? ? ? ? ? ? { date: '2020-01-07', age: '34'},
? ? ? ? ? ? ? ? { date: '2020-01-07', age: '18'},
? ? ? ? ? ? ? ? { date: '2020-01-07', age: '38'},
? ? ? ? ? ? ]
? ? ? ? },
? ? ? ? {
? ? ? ? ? ? date:'2020-01-08',
? ? ? ? ? ? List: [
? ? ? ? ? ? ? ? ?{ date: '2020-01-08', age: '26'},
? ? ? ? ? ? ]
? ? ? ? },
? ? ? ? {
? ? ? ? ? ? date:'2020-01-09',
? ? ? ? ? ? List: [
? ? ? ? ? ? ? ? { date: '2020-01-09', age: '24' }
? ? ? ? ? ? ]
? ? ? ? }
? ? ]

第二種情況

一級四位數(shù)(0001),二級八位數(shù)字(00010001)獲取的條件是通過一級的四位數(shù)字匹配二級的前四位數(shù)字

方法1:

var userArr = [
? { id: "0001", userName: "laozhang_1" },
? { id: "00010001", userName: "laozhang1" },
? { id: "00010002", userName: "laozhang1" },
? { id: "00010003", userName: "laozhang1" },
? { id: "0002", userName: "laowang" },
? { id: "00020002", userName: "laozhang2" },
? { id: "00020003", userName: "laowang" },
? { id: "00020004", userName: "laowang" },
? { id: "00020005", userName: "laowang" },
? { id: "00020006", userName: "laowang" }
];
let newArr = []
?userArr.forEach(item => {
? ?if (item.id.length === 4) {
? ? ?newArr.push({ ...item, list: [] });
? }
?});
newArr.forEach(item => {
? userArr.forEach(user => {
? ? ?if (item.id !== user.id && item.id == user.id.substring(0, 4)) {
? ? ? item.list.push(user);
? ? }
? });
?});
console.log(newArr)

方法2:

var userArr = [
? { id: "0001", userName: "laozhang_1" },
? { id: "00010001", userName: "laozhang1" },
? { id: "00010002", userName: "laozhang1" },
? { id: "00010003", userName: "laozhang1" },
? { id: "0002", userName: "laowang" },
? { id: "00020002", userName: "laozhang2" },
? { id: "00020003", userName: "laowang" },
? { id: "00020004", userName: "laowang" },
? { id: "00020005", userName: "laowang" },
? { id: "00020006", userName: "laowang" }
];
let newArr = userArr.filter(item => item.id.length === 4)
newArr.forEach(item => {
? ? ? item.list = userArr.filter(user => item.id !== user.id && item.id == user.id.substring(0, 4))
? ? })
? ? console.log(newArr)

js一維數(shù)組處理成多維數(shù)組

let replies = [
	    { id: 1, content: '1. 真理惟一可靠的標準就是永遠自相符合', parent: 0 },
	    { id: 2, content: '2. 我需要三件東西:愛情友誼和圖書', parent: 0 },
	    { id: 3, content: '2-1 時間是一切財富中最寶貴的財富', parent: 2 },
	    { id: 4, content: '2-2 我讀的書愈多,就愈親近世界,愈明了生活的意義,愈覺得生活的重要', parent: 2 },
	    { id: 5, content: '2-1-1 任何事物都是在不斷變化的', parent: 3 },
	    { id: 6, content: '2-1-2 真正的科學家應當是個幻想家', parent: 3 },
	    { id: 7, content: '3. 難得糊涂,耳不聞人之非,不信謠,不傳謠', parent: 0 },
	];
function multidimensionalArray(replies) {
    let data = JSON.parse(JSON.stringify(replies)); 
    data.forEach(reply => {
        let parent = data.find(res => res.id === reply.parent); 
        if (parent) {
            parent.children = parent.children || [];
            parent.children.push(reply); 
        }
    });
    return data;
}
console.log(multidimensionalArray(replies))
  /**一維數(shù)組處理成多維數(shù)組
   * linearArray 一維數(shù)組
   *primary 父級id(父子關(guān)聯(lián)字段)
   * secondary 子級id(父子關(guān)聯(lián)字段)
   */
  multidimensionalArray: function (linearArray, primary, secondary) {
    let data = JSON.parse(JSON.stringify(linearArray));
    data.forEach(item => {
      let parent = data.find(res => res[primary] === item[secondary]);
      if (parent) {
        parent.children = parent.children || [];
        parent.children.push(item);
      }
    });
    return data;
  }

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解使用grunt完成requirejs的合并壓縮和js文件的版本控制

    詳解使用grunt完成requirejs的合并壓縮和js文件的版本控制

    這篇文章主要介紹了詳解使用grunt完成requirejs的合并壓縮和js文件的版本控制 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • JavaScript判斷字符長度、數(shù)字、Email、電話等常用判斷函數(shù)分享

    JavaScript判斷字符長度、數(shù)字、Email、電話等常用判斷函數(shù)分享

    這篇文章主要介紹了JavaScript判斷字符長度、數(shù)字、Email、電話等常用判斷函數(shù)分享,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下
    2015-04-04
  • 原生JavaScript實現(xiàn)滑動拖動驗證的示例代碼

    原生JavaScript實現(xiàn)滑動拖動驗證的示例代碼

    這篇文章主要介紹了原生JavaScript實現(xiàn)滑動拖動驗證的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • zTree插件之單選下拉菜單實例代碼

    zTree插件之單選下拉菜單實例代碼

    zTree插件之單選下拉菜單實例代碼。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-11-11
  • JavaScript實現(xiàn)滑動導航欄效果

    JavaScript實現(xiàn)滑動導航欄效果

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)滑動導航欄效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 關(guān)于ES6尾調(diào)用優(yōu)化的使用

    關(guān)于ES6尾調(diào)用優(yōu)化的使用

    這篇文章主要介紹了關(guān)于ES6尾調(diào)用優(yōu)化的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Bootstrap每天必學之按鈕(Button)插件

    Bootstrap每天必學之按鈕(Button)插件

    Bootstrap每天必學之按鈕(Button)插件,通過按鈕(Button)插件,您可以添加進一些交互,比如控制按鈕狀態(tài),或者為其他組件(如工具欄)創(chuàng)建按鈕組,感興趣的小伙伴們可以參考一下
    2016-04-04
  • Openlayers繪制聚合標注

    Openlayers繪制聚合標注

    這篇文章主要為大家詳細介紹了Openlayers實現(xiàn)聚合標注,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • 原生javascript的ajax請求及后臺PHP響應操作示例

    原生javascript的ajax請求及后臺PHP響應操作示例

    這篇文章主要介紹了原生javascript的ajax請求及后臺PHP響應操作,結(jié)合示例形式分析了JavaScript前臺ajax請求的原理、調(diào)用、后臺PHP響應請求及cookie保存相關(guān)操作技巧,需要的朋友可以參考下
    2020-02-02
  • Java 正則表達式學習總結(jié)和一些小例子

    Java 正則表達式學習總結(jié)和一些小例子

    字符串處理是許多程序中非常重要的一部分,它們可以用于文本顯示,數(shù)據(jù)表示,查找鍵和很多目的.在Unix下,用戶可以使用正則表達式的強健功能實現(xiàn)這些 目的
    2012-09-09

最新評論

富川| 大港区| 沧州市| 平遥县| 内江市| 玉山县| 长葛市| 嘉鱼县| 西林县| 两当县| 天柱县| 揭阳市| 巴塘县| 丹棱县| 德庆县| 冕宁县| 宾阳县| 会昌县| 长春市| 罗城| 乐至县| 中江县| 夹江县| 富源县| 灌阳县| 新宁县| 安溪县| 肥城市| 孝义市| 双柏县| 杭州市| 买车| 泸水县| 剑川县| 萨迦县| 萨嘎县| 扶沟县| 奎屯市| 牡丹江市| 正定县| 上饶市|