当前位置: 代码网 > it编程>编程语言>Javascript > JS中数组与对象相互转换的实现方式

JS中数组与对象相互转换的实现方式

2024年05月28日 Javascript 我要评论
一、数组转对象1. 一维数组转对象如果有非字符串的键名,那么这个键名会被转成字符串,再作为对象的键名const arr1 = [{ label: '昨天', value: '4-09'},

一、数组转对象

1. 一维数组转对象

如果有非字符串的键名,那么这个键名会被转成字符串,再作为对象的键名

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

// 一维数组转obj [{},{}] => {}
function arr1toobj(arr) {
    const obj_1 = arr.reduce((res, item, index) => (res[index] = item.value, res), {})
    console.log('一维数组转obj', obj_1);
 
    // 指定键名
    const obj_2 = arr.reduce((res, item) => (res[item.label] = item.value, res), {})
    console.log('一维数组转obj----指定键名', obj_2);
}

arr1toobj(arr1)

2. 二维数组转对象

object.fromentries()实现

const arr2 = [['昨天','4-09'], ['今天','4-10'], ['明天','4-11']]
// 二维数组转obj [['',''],['','']] => {}
function arr2toobj(arr) {
    return object.fromentries(arr)
}
console.log('二维数组转obj', arr2toobj(arr2));

3. 二维数组转对象

map实现

const obj_a = {a: 1}
const obj_b = {b: 1}
const arr3 = [['昨天','4-09'],['今天','4-10'],['明天','4-11'],[obj_a, '是一个引用类型的a'],[obj_b, '是一个引用类型的b']]
        
// 二维数组转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('二维数组转obj by map', arr2toobjbymap(arr3))

二、对象转数组

1. 对象转一维数组

const obj = {
    '上午': ['上午数组值'],
    '下午': ['下午数组值'],
    '晚上': ['晚上数组值'],
}
// obj转一维数组 [{},{},{}]
function objtoarr1(obj) {
    let arr = []
    object.keys(obj).foreach(key => {
        arr.push({
            label: key,
            value: obj[key]
        })
    })
    return arr
}
console.log('obj转一维数组',objtoarr1(obj));

2. 对象转二维数组

function objtoarr2(obj) {
    // 方法一
    let arr = []
    object.keys(obj).foreach(key => {
        arr.push([key, obj[key]])
    })
    return arr
    
    // 或者 方法二
    return object.entries(obj)
}
console.log('obj转二维数组', objtoarr2(obj));

3. 对象转二维数组

map实现, 主要是 map 转数组

function objtoarrbymap(obj) {
    const map = new map(object.entries(obj))
    console.log('map', map);
    // map转对象
    const my_map = new map(map)
    return [...my_map]
}
console.log('obj转二维数组 by map', objtoarrbymap(obj))

以上就是js中数组与对象相互转换的实现方式的详细内容,更多关于js数组与对象转换的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com