美文网首页
工作中对象数组常见的一些操作

工作中对象数组常见的一些操作

作者: Stevenzwzhai | 来源:发表于2017-02-25 14:02 被阅读18次

在很多时候,我们获取一个列表的时候,后端返回的列表都是对象数组,如果单纯的展示,那很简单,但往往回去做一些二次加工,比如选择商品,并对其数量或者价格做修改,而且还会重新选择,但是之前选好的已经修改了一些属性,我们就需要将两次选择的数据进行合并。等等。。

数组拷贝

首先讲一下数组拷贝问题,这里不细说怎么拷贝,而是提醒大家,在对数组进行传递并修改时一定要对数组拷贝,不然会发生意想不到的错误(在另一个地方修改了数组,之前的也变化了)。大家都知道数组是属于引用类型变量,所以传递的时候传递的是引用地址。记得拷贝,记得拷贝,一定要记得拷贝!(我一般使用slice来处理)

对数组添加额外属性

    function addKey(list, keyword, value){
    if(Object.prototype.toString.call(list) !== "[object Array]"){
            return [];
    }
    var list = list.slice();
    if(list.length == 0){
        return [];
    }
    var newList = list.map(function(item, index){
        if(typeof item[keyword] == "undefined"){
            item[keyword] = value || "";
        }
        return item;
    })
    return newList || [];
}

合并数组

function merge(oldList, newList, keyword){
    if(Object.prototype.toString.call(oldList) !== "[object Array]" || Object.prototype.toString.call(newList) !== "[object Array]"){
        return;
    }
    //在这里为了方便做新旧数组对比,我们先做了一些处理,以关键字和商品信息为键值对来保存两组数据
    var oldJson = formatArr(oldList.slice(), keyword);
    var newJson = formatArr(newList.slice(), keyword);
    var newArr = [];
    for(var key in newJson){
        if(typeof oldJson[key] !== "undefined"){
            newArr.push(oldJson[key]);
        }else{
            newArr.push(newJson[key]);
        }
    }

    return newArr;
}

function formatArr(list, keyword){
    if(Object.prototype.toString.call(list) !== "[object Array]"){
        return;
    }
    var list = list.slice();
    var newJson = {};
    list.forEach(function(item, index){
        newJson[item[keyword]] = item;
    })
    return newJson;
}

github上有详细注释如何使用https://github.com/Stevenzwzhai/plugs/tree/master/Array-Deal

相关文章

  • JS之类数组对象以及转换方法大全

    什么是类数组对象 有length属性和若干索引属性的对象。 为什么叫类数组 类数组对象可以执行一些常见的数组操作,...

  • 工作中对象数组常见的一些操作

    在很多时候,我们获取一个列表的时候,后端返回的列表都是对象数组,如果单纯的展示,那很简单,但往往回去做一些二次加工...

  • JS文集的目录

    js基础心法 深浅拷贝(递归)深浅拷贝(首层浅拷贝) js 数据处理 数组对象查找的常见操作数组对象去重的常见操作...

  • js中数组的遍历

    在平时的工作中,对数组,对象的遍历操作是非常常见的。现就遍历的几种方式做以下总结。 数组的遍历 假设有一个数组va...

  • 数组对象查找的常见操作

    1.获得数组对象中子孙的值 解决方法 2. 传递四个参数,find的层层筛选 案例模拟 解决方法 3.传入单个参数...

  • javascript数组操作

    javascript数组操作 今天针对javascript的数组的一些常见操作进行一些讲解,希望对给为开发者有帮助...

  • java笔记5

    数组的定义 数组的内存分配及特点 数组操作常见问题 数据常见操作 数组中的数组 @Test public void...

  • 数组对象去重的常见操作

    前言: 数组对象去重与数组去重的不同点在于,数组对象需要指定一个属性(key值)再进行去重。 1.数组对象的自定义...

  • Javascript 数组操作草稿纸

    // 常见数组操作

  • 第一讲 数组

    数组在我们日常的开发工作中可以说是最常见的了,但是今天我们不讲数组这么使用,我们说一说面向对象编程方式下数组的使用...

网友评论

      本文标题:工作中对象数组常见的一些操作

      本文链接:https://www.haomeiwen.com/subject/ugggwttx.html