欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS中數(shù)組與對象相互轉(zhuǎn)換的實(shí)現(xiàn)方式

 更新時(shí)間:2024年04月23日 08:29:09   作者:前端代碼仔  
這篇文章主要介紹了JS中數(shù)組與對象相互轉(zhuǎn)換的實(shí)現(xiàn)方式,文章通過代碼示例講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下

一、數(shù)組轉(zhuǎn)對象

1. 一維數(shù)組轉(zhuǎn)對象

如果有非字符串的鍵名,那么這個(gè)鍵名會被轉(zhuǎn)成字符串,再作為對象的鍵名

const arr1 = [{
    label: '昨天',
    value: '4-09'
},{
    label: '今天',
    value: '4-10'
 
},{
    label: '明天',
     value: '4-11'
}]

// 一維數(shù)組轉(zhuǎn)obj [{},{}] => {}
function Arr1ToObj(arr) {
    const obj_1 = arr.reduce((res, item, index) => (res[index] = item.value, res), {})
    console.log('一維數(shù)組轉(zhuǎn)obj', obj_1);
 
    // 指定鍵名
    const obj_2 = arr.reduce((res, item) => (res[item.label] = item.value, res), {})
    console.log('一維數(shù)組轉(zhuǎn)obj----指定鍵名', obj_2);
}

Arr1ToObj(arr1)

2. 二維數(shù)組轉(zhuǎn)對象

Object.fromEntries()實(shí)現(xiàn)

const arr2 = [['昨天','4-09'], ['今天','4-10'], ['明天','4-11']]
// 二維數(shù)組轉(zhuǎn)obj [['',''],['','']] => {}
function Arr2ToObj(arr) {
    return Object.fromEntries(arr)
}
console.log('二維數(shù)組轉(zhuǎn)obj', Arr2ToObj(arr2));

3. 二維數(shù)組轉(zhuǎn)對象

map實(shí)現(xiàn)

const obj_a = {a: 1}
const obj_b = {b: 1}
const arr3 = [['昨天','4-09'],['今天','4-10'],['明天','4-11'],[obj_a, '是一個(gè)引用類型的a'],[obj_b, '是一個(gè)引用類型的b']]
        
// 二維數(shù)組轉(zhuǎn)obj by map [['',''],['','']] => {} 
function Arr2ToObjByMap(arr) {
    const map = new Map(arr)
    let obj = Object.create(null);
        
    for (let [k,v] of map) {
        obj[k] = v;
    }
    return obj;
}
console.log('二維數(shù)組轉(zhuǎn)obj by map', Arr2ToObjByMap(arr3))

二、對象轉(zhuǎn)數(shù)組

1. 對象轉(zhuǎn)一維數(shù)組

const obj = {
    '上午': ['上午數(shù)組值'],
    '下午': ['下午數(shù)組值'],
    '晚上': ['晚上數(shù)組值'],
}
// obj轉(zhuǎn)一維數(shù)組 [{},{},{}]
function objToArr1(obj) {
    let arr = []
    Object.keys(obj).forEach(key => {
        arr.push({
            label: key,
            value: obj[key]
        })
    })
    return arr
}
console.log('obj轉(zhuǎn)一維數(shù)組',objToArr1(obj));

2. 對象轉(zhuǎn)二維數(shù)組

function objToArr2(obj) {
    // 方法一
    let arr = []
    Object.keys(obj).forEach(key => {
        arr.push([key, obj[key]])
    })
    return arr
    
    // 或者 方法二
    return Object.entries(obj)
}
console.log('obj轉(zhuǎn)二維數(shù)組', objToArr2(obj));

3. 對象轉(zhuǎn)二維數(shù)組

map實(shí)現(xiàn), 主要是 map 轉(zhuǎn)數(shù)組

function ObjToArrByMap(obj) {
    const map = new Map(Object.entries(obj))
    console.log('map', map);
    // map轉(zhuǎn)對象
    const my_map = new Map(map)
    return [...my_map]
}
console.log('obj轉(zhuǎn)二維數(shù)組 by map', ObjToArrByMap(obj))

以上就是JS中數(shù)組與對象相互轉(zhuǎn)換的實(shí)現(xiàn)方式的詳細(xì)內(nèi)容,更多關(guān)于JS數(shù)組與對象轉(zhuǎn)換的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 利用10行js代碼實(shí)現(xiàn)上下滾動公告效果

    利用10行js代碼實(shí)現(xiàn)上下滾動公告效果

    這篇文章主要給大家介紹了關(guān)于利用10行js代碼實(shí)現(xiàn)滾動公告效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起看看吧。
    2017-12-12
  • 原生JS實(shí)現(xiàn)瀑布流插件

    原生JS實(shí)現(xiàn)瀑布流插件

    本篇文章給大家詳細(xì)分析了一個(gè)原生JS實(shí)現(xiàn)瀑布流插件以及代碼相關(guān)講解,對此有興趣的讀者們參考學(xué)習(xí)下吧。
    2018-02-02
  • bootstrap-table formatter 使用vue組件的方法

    bootstrap-table formatter 使用vue組件的方法

    Bootstrap table是國人開發(fā)的一款基于 Bootstrap 的 jQuery 表格插件,通過簡單的設(shè)置,就可以擁有強(qiáng)大的單選、多選、排序、分頁,以及編輯、導(dǎo)出、過濾(擴(kuò)展)等等的功能。這篇文章重點(diǎn)給大家介紹bootstrap-table formatter 使用vue組件的方法,感興趣的朋友一起看看
    2019-05-05
  • 第八篇Bootstrap下拉菜單實(shí)例代碼

    第八篇Bootstrap下拉菜單實(shí)例代碼

    這篇文章主要介紹了Bootstrap下拉菜單實(shí)例代碼的相關(guān)知識,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧
    2016-06-06
  • 微信小程序自定義單選框樣式實(shí)現(xiàn)單選功能

    微信小程序自定義單選框樣式實(shí)現(xiàn)單選功能

    這篇文章主要為大家詳細(xì)介紹了微信小程序自定義單選框樣式實(shí)現(xiàn)單選功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 原生JS運(yùn)動實(shí)現(xiàn)輪播圖

    原生JS運(yùn)動實(shí)現(xiàn)輪播圖

    這篇文章主要為大家詳細(xì)介紹了原生JS運(yùn)動實(shí)現(xiàn)輪播圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • 動態(tài)生成的IFRAME,設(shè)置SRC時(shí)的問題解決分析

    動態(tài)生成的IFRAME,設(shè)置SRC時(shí)的問題解決分析

    動態(tài)生成的IFRAME,設(shè)置SRC時(shí)的,不同位置帶來的影響。 以下所說的是在IE7下運(yùn)行的。IE6下也是同樣。 在這個(gè)blog中,直接點(diǎn)擊運(yùn)行代碼,和把下面代碼保存到為網(wǎng)頁在運(yùn)行(以本地文件或域名訪問),效果不一樣。 先看例子:
    2008-04-04
  • webpack DllPlugin xxx is not defined解決辦法

    webpack DllPlugin xxx is not defined解決辦法

    這篇文章主要介紹了webpack DllPlugin xxx is not defined解決辦法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 5款JavaScript代碼壓縮工具推薦

    5款JavaScript代碼壓縮工具推薦

    這篇文章主要介紹了5款JavaScript代碼壓縮工具推薦,代碼壓縮(也稱代碼最小化)是一個(gè)從源代碼中消除所有不必要的字符的過程,需要的朋友可以參考下
    2014-07-07
  • 使用原生js實(shí)現(xiàn)拖拽和粘貼上傳圖片功能

    使用原生js實(shí)現(xiàn)拖拽和粘貼上傳圖片功能

    這篇文章主要介紹了使用原生js實(shí)現(xiàn)拖拽和粘貼上傳圖片功能,Vue/Rect?生態(tài)用多了都快忘記原生js怎么寫了,今天需要直接在服務(wù)器裸寫個(gè)頁面,實(shí)現(xiàn)?textarea?文本框里接收拖拽多個(gè)圖片,需要的朋友可以參考下
    2024-04-04

最新評論