H5W3
当前位置:H5W3 > 其他技术问题 > 正文

【Web前端问题】js怎么修改二维数组的索引,如下图,我想把0改成name,怎么写呢?

图片描述

clipboard.png
提示username未定义,定义后也木有用,这个写应该改是不可以的,有什么好办法吗?

回答:

你自己的解决方法当然是正确的,我这里给你一个类似 @熊猫桑@listenWind 的解决办法,不过是用 map&reduce 来处理的。map&reduce 是用来处理数据的常规方法

const data = [
    ["lalala", "123", "魏忠贤", "双", "15888888", "null@jj.com", "000001", "1"],
    ["hehehe", "456", "杨不悔", "女", "137777777", "full@zz.com", "000002", "0"]
];

const fields = ["username", "password", "nickname", "sex", "phone", "code", "email", "status"];

const result = data.map(arr => {
    return fields.reduce((obj, name, i) => {
        obj[name] = arr[i];
        return obj;
    }, {});
});

console.log(result);

clipboard.png

回答:

function changeArr(a) {
    var arr = a;
    var newArr = [];
    var infos = ["username", "password", "nickname", "sex", "phone", "code", "email", "status"];
    for (var i = 0; i < arr.length; i++) {
        var obj = {};
        for (var j = 0; j < arr[i].length; j++) {
            obj[infos[j]] = arr[i][j];
        }
        newArr.push(obj);
    }
    return newArr;
}

$scope.batchaddstudent=changeArr($scope.batchaddstudent);

希望有所帮助!!

回答:

你需要去了解一下json

回答:

用json键值对能帮到你
还能学到新知识呢

回答:

建议直接转对象数组吧。

给个Lodash写法:

var new = [];
var old = [['lalala','123','魏忠贤','双','15888888','null@jj.com','000001','1'],['hehehe','456','杨不悔','女','137777777','full@zz.com','000002','0']];
var temp = ['user','pass','nick','sex','mail','code','status'];
for (var i = 0; i < old.length; i++) {
    new.push(_.zipObject(temp, old[i]));
}

回答:

首先你要考虑你需要用数据去完成什么功能,然后再去考虑用数组还是json对象来处理,如果你想用key值来说明对应value的意义的话,还是用json对象吧,方便处理

回答:

var t = arr[0]
arr[0] = arr[2]
arr[2] = t

回答:

可是不太建议这么做呀。

arr["name"] = a[0];
delete a[0];

回答:

可以把数组转换成对象的方式存储,[{“username”:””,”age”:””},{}]

回答:

图片描述

解决了,谢谢大家提供的意见。

本文地址:H5W3 » 【Web前端问题】js怎么修改二维数组的索引,如下图,我想把0改成name,怎么写呢?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址