前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次实习收获

记一次实习收获

作者头像
hss
发布2022-02-25 20:07:51
1820
发布2022-02-25 20:07:51
举报
文章被收录于专栏:前端卡卡西前端卡卡西

单词倒序

代码语言:javascript
复制
function desc(str) {
    var arr = str.split(" ")
    var res = []
    for (var i = 0; i < arr.length; i++) {
        res.unshift(arr[i])
    }
    return res.join(" ")
}

var str = 'hello word i come here'
console.log(desc(str))

去重

代码语言:javascript
复制
        function distinct1(arr, key) {
            var newobj = {}, newArr = [];
            for (var i = 0; i < arr.length; i++) {
                var item = arr[i];
                if (!newobj[item[key]]) {
                    newobj[item[key]] = newArr.push(item);
                }
            }
            console.log(newArr)
            return newArr;
        }
        var arr1 = [
            { name: '张三' },
            { name: '张三' },
            { name: '李四' },
            { name: '王五' },
        ]
        distinct1(arr1, 'name')

分组

代码语言:javascript
复制
        var arr1 = [
            { "id": "1001", "name": "值1" },
            { "id": "1001", "name": "值1" },
            { "id": "1002", "name": "值2" },
            { "id": "1002", "name": "值2" },
            { "id": "1002", "name": "值2" },
            { "id": "1003", "name": "值3" }
        ];

        function groupby(arr, groups) {
            var map = {},
                dest = [];
            for (var i = 0; i < arr.length; i++) {
                var ai = arr[i];
                if (!map[ai.id]) {
                    dest.push({
                        id: ai.id,
                        groups: [ai]
                    });
                    map[ai.id] = ai;
                } else {
                    for (var j = 0; j < dest.length; j++) {
                        var dj = dest[j];
                        if (dj.id == ai.id) {
                            dj.groups.push(ai);
                            break;
                        }
                    }
                }
            }
            return dest
        }
        console.log(arr1)
        console.log(groupby(arr1, 'id'));

深拷贝

代码语言:javascript
复制
        deepClone = (initalObj) => {
            const obj = {};
            if (typeof initalObj !== 'object') {
                return initalObj
            }
            for (const key in initalObj) {
                if (typeof initalObj[key] === 'object') {
                    //对数组特殊处理
                    if (Array.isArray(initalObj[key])) {
                        //用map方法返回新数组,将数组中的元素递归
                        obj[key] = initalObj[key].map(item => this.deepClone(item))
                    } else {
                        //递归返回新的对象
                        obj[key] = this.deepClone(initalObj[key]);
                    }
                } else if (typeof initalObj[key] === 'function') {
                    //返回新函数
                    obj[key] = initalObj[key].bind(obj);
                } else {
                    //基本类型直接返回
                    obj[key] = initalObj[key];
                }
            }
            return obj;
        }
        const obj = {
            a: 1,
            b: {},
            c: { d: {}, g: () => { } },
            e: () => { },
            f: function () { }
        }
        const newObj = deepClone(obj);
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-04-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 单词倒序
  • 去重
  • 分组
  • 深拷贝
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档