如何更改数组对象中的值?

发布于 2022-09-05 09:43:27 字数 404 浏览 23 评论 0

var stooges = [
            {label:1,value:1,placeCode: 'sh', stock_code: 40},
            {label:1,value:1,placeCode: 'sh', stock_code: 50},
            {label:1,value:1,placeCode: 'sz', stock_code: 60,status:1},
            {label:1,value:1,placeCode: 'sz', stock_code: 39,status:1}
        ];

我想将上面代码里的placeCode改变值:"sh"改为"沪","sz"改为"深",请问如何操作,最好用underscore.js或lodash.js

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

韶华倾负 2022-09-12 09:43:27
for(var i=0;i<stooges.length;i++){
    stooges[i].placeCode === 'sh'?stooges[i].placeCode = '沪': stooges[i].placeCode = '深'
}

一个循环就搞定 为啥用库来?

凤舞天涯 2022-09-12 09:43:27

不用第三方库也可以实现,比较简单

var stooges = [
            {label:1,value:1,placeCode: 'sh', stock_code: 40},
            {label:1,value:1,placeCode: 'sh', stock_code: 50},
            {label:1,value:1,placeCode: 'sz', stock_code: 60,status:1},
            {label:1,value:1,placeCode: 'sz', stock_code: 39,status:1}
        ];
var maps= new Map([['sh','沪'],['sz','深圳']]);
stooges = stooges.map(element =>{
    element.placeCode = maps.get(element.placeCode);
    return element;
});
console.log(stooges);
梦断已成空 2022-09-12 09:43:27

loadsh.js和underscore.js 都只是工具,为何一定要用。

var toStr = {
    sh : '沪',
    sz : '深'    
};
stooges.map(function(value){
    var placeCode = value.placeCode;
    value.placeCode = toStr[placeCode] ? toStr[placeCode] : placeCode;
    return value;
}); 

这个方法你再抽象哈,然后就是一个公共函数。

冷情妓 2022-09-12 09:43:27
const convert = (obj) => {
    const {placeCode} = obj
    if (placeCode === 'sh') {
        return Object.assign({}, obj,{
            placeCode: '沪',
        })
    }
    if (placeCode === 'sz') {
        return Object.assign({}, obj,{
            placeCode: '深'
        })
    }
    return obj
}

非框架:

const converedStooges = stooges.map(convert)

框架:

_.chain(stooges).map(convert).value()
巾帼英雄 2022-09-12 09:43:27

用了数组的forEach:

var stooges = [
    { label: 1, value: 1, placeCode: 'sh', stock_code: 40 },
    { label: 1, value: 1, placeCode: 'sh', stock_code: 50 },
    { label: 1, value: 1, placeCode: 'sz', stock_code: 60, status: 1 },
    { label: 1, value: 1, placeCode: 'sz', stock_code: 39, status: 1 }
];
stooges.forEach(function (e, i, a) {
    if (e.placeCode == 'sh') {
        e.placeCode = '沪';
    } else if (e.placeCode == 'sz') {
        e.placeCode = '深';
    }
});
console.table(stooges);
雪落纷纷 2022-09-12 09:43:27
_.map(stooges, function (value) {
    return _.update(_.clone(value), 'placeCode', function (value) {
        var newValue = '';
        switch (value) {
            case 'sh':
                newValue = '沪';
                break;

            case 'sz':
                newValue = '深';
                break;

            default:
                newValue = value;
                break;
        };
        return newValue;
    });
});

使用_.clone是为了避免修改原始的对象
或者你可以使用lodash.fp

fp.map(fp.update('placeCode', function (value) {
    if (value === 'sh') 
        return '沪';
    if (value === 'sz') 
        return '深';
    return value;
}), stooges);
最冷一天 2022-09-12 09:43:27
var stooges = [
  {label: 1, value: 1, placeCode: 'sh', stock_code: 40},
  {label: 1, value: 1, placeCode: 'sh', stock_code: 50},
  {label: 1, value: 1, placeCode: 'sz', stock_code: 60, status: 1},
  {label: 1, value: 1, placeCode: 'sz', stock_code: 39, status: 1}
];

for (var i = 0; i < stooges.length; i++) {
  var item = stooges[i];
  if (item.placeCode == "sh") {
    item.placeCode = "泸";
  }
  if (item.placeCode == "sz") {
    item.placeCode = "深";
  }
}

console.log(stooges);

不用第三方库,最简单的方式就是这样

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文