首页 > 其他分享 >代码考核

代码考核

时间:2022-08-17 23:26:09浏览次数:51  
标签:arr name title price id item 考核 代码

  • 实现数组的flat
  • 实现数组的flat方法,支持传入递归深度
    代码模板:
    const readline = require('readline');
    
    const rl = readline.createInterface({
        input: process.stdin,
        output: process.stdout
    });
    
    rl.question('', (input) => {
        let [arr, depth] = input.split(';');
        arr = JSON.parse(arr);
        depth =Number(depth);
        console.log(flat(arr, depth));
        rl.close();
    });
    
    function flat(arr, depth) {
        // 实现代码
        
    }

[1, [2, [3,4]]], 1    ====>>>>>  [1,2,[3,4]]

------------------------------------------------------
  • JS链式调用
  • 请实现 find 函数,使下列的代码调用正确。

    // 约定:
    // name数据类型为String
    // price数据类型为Number
    var data = [
    { price: 13, name: 'A-apple' },
    { price: 9, name: 'B-apple' },
    { price: 16, name: 'A-orange' },
    { price: 10, name: 'B-orange' },
    { price: 20, name: null },
    ];
    var find = function (origin) {
    // your code are here...
    }
    // 查找 data 中,符合条件的数据,并进行排序
    var result = find(data).where({
    'name': /^A/
    }).orderBy('price', 'desc');
    
    console.log(result); // [ { price: 16, name: 'A-orange' }, { price: 13, name: 'A-apple' } ]



    答案:

    // 约定:
    // name数据类型为String
    // price数据类型为Number
    var data = [
    { price: 13, name: 'A-apple' },
    { price: 9, name: 'B-apple' },
    { price: 16, name: 'A-orange' },
    { price: 10, name: 'B-orange' },
    { price: 20, name: null },
    ];
    var find = function (origin) {
    // your code are here...
    return {
        vlaue: origin,
        where(object) {
            for (const key in object) {
                if (Object.prototype.hasOwnProperty.call(object, key)) {
                    const element = object[key];
                    this.vlaue = this.vlaue.filter(item => element.test(item[key]))
                }
            } 
            return this
        },
        orderBy(key, sort) {
          return  this.vlaue.sort((a, b) => sort !== 'desc' ? a[key] - b[key] : b[key] - a[key])
        }
    }
    
    }
    // 查找 data 中,符合条件的数据,并进行排序
    var result = find(data).where({
    'name': /^A/
    }).orderBy('price', 'desc');
    
    console.log(result); // [ { price: 16, name: 'A-orange' }, { price: 13, name: 'A-apple' } ]

     

        ----------------------------------------------------------------------------------------
    • 数组中集合对象过滤
    • 在我们拿到后端数据的时候,可能会对数据进行一些筛选、去重过滤。

      示例
      [{ name: 'kele', title: '可口可乐', id: 1 }, { name: 'kele', title: '芬达', id: 2 }, { name: 'wlg', title: '王老吉', id: 2 }, { name: 'xubi', title: '雪碧', id: 3 }] 数组,依据id去重复

      结果
       [{ name: 'kele', title: '可口可乐', id: 1 }, { name: 'kele', title: '芬达', id: 2 }, { name: 'xubi', title: '雪碧', id: 3 }] 

    function unionFun(arr, type){
        let a = [];
        // let b = [];
        // arr.map(item=>{
        //     if(a.indexOf(item[type]) === -1){
        //         a.push(item[type])
        //         b.push(item)
        //         return item
        //     }
        // })
        // return b;
        const c = arr.filter((item) => {
            if(a.indexOf(item[type]) === -1){
                a.push(item[type])
                return item
            }
        })
        return c;
    }
    
    let arr = [{ name: 'kele', title: '可口可乐', id: 1 }, { name: 'kele', title: '芬达', id: 2 }, { name: 'wlg', title: '王老吉', id: 2 }, { name: 'xubi', title: '雪碧', id: 3 }]
    
    console.log(unionFun(arr, 'name'))

     

标签:arr,name,title,price,id,item,考核,代码
From: https://www.cnblogs.com/chenng/p/16597177.html

相关文章

  • 代码实现 打印九九乘法口诀
    #for循环,其中range(1,10)取1-9之间的整数,不会取到10#range(1,10)相当于数学中的[1,10),取值范围是前闭后开foriinrange(1,10):#for循环,取1到i的整数......
  • python 代码测试(pytest)
    前话代码测试用于检验代码运行结果是否符合预期。优势一:编写测试函数,更规范,高效的核对代码运行结果,当被测试对象进行了调整和重构的时候,可以节省大量人工排查问题的时间......
  • Unity 代码调用重新生成csproj文件
    结论先放结论:editor代码中直接调用Unity.CodeEditor.CodeEditor.CurrentEditor.SyncAll();原因在一些操作后,比如修改csc.rsp的内容之后,需要重新生成csproj文件方......
  • 谷粒商城(无CURD代码)
    GUIGU-GULIMALL项目:写在开头:这份笔记仅仅记录了一些环境搭建以及基础篇中一些技术的使用,基本的CURD大部分没有记录,参考了很多网友的博客。若有冒犯,请联系我删除。参考......
  • 前端请求不到数据_后端写代码直接复制_部分内容没有修改
    ......
  • 代码审计(Java)——WebGoat_SqlInjection
    一、SqlInjection_introduction1.这里level1-8就不说了,都是介绍+简单的sql语句,直接上level9这里可以看到,是给出了选择框的一道题,OWASP真不错,生怕你不会哈哈~......
  • 13行python代码实现对微信进行推送消息
    Python可以实现给QQ邮箱、企业微信、微信等等软件推送消息,今天咱们实现一下Python直接给微信推送消息。这里咱们使用了一个第三方工具pushplus单人推送实现步骤......
  • a菜单点击标红,其他标黑代码
    <script>letaList=document.querySelectorAll('a');console.log(aList);for(letindex=0;index<aList.length;index++){......
  • 代码圈复杂度治理小结
    简介: 我们一直在说系统很复杂,那到底什么是系统复杂度呢?作为团队的稳定性底盘负责人,也经常和大家探讨为什么会因为圈复杂度高而被扣分。那么,怎么才能写的一手可读,可扩展,可......
  • 2.错误代码C2440
    错误 C2440 “初始化”:无法从“constchar[5]”转换为“char*”从整型强制转换为指针类型要求reinterpret_cast、C样式强制转换或函数样式强制转换修改方案:主界面......