博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一些常见的js编程题
阅读量:5818 次
发布时间:2019-06-18

本文共 1122 字,大约阅读时间需要 3 分钟。

1、实现数组乱序

var a = [1,2,3,4,5,6,7,8,9,0,12,23,45,90];a.sort(function (a,b) {    var sign = (Math.random()>0.5) ? 1 : -1;    return (a-b)*sign;});

2、reduce的使用

//有一个长度为100的数组,请以优雅的方式求出该数组的前10个元素之和var b = [1,2,3,4,5,6,7,8,9,10];var sum = b.slice(0,10).reduce(function (pre,cur) {    return pre + cur;},0);

3、有一个长度为100的数组,值为其所在位置的索引

var a = new Array(100);a = a.join(",").split(",").map(function(item, index) {    return index;});

4、如何消除数组中重复的元素

function deRepeat(arr) {    let newArr = [];    arr.map(function (item) {        if(newArr.indexOf(item) === -1){            newArr.push(item);        }    });    return newArr;}

 

5、对象的深浅拷贝

浅拷贝:只是拷贝了基本类型的数据,对于数组或对象的话,拷贝的只是其内存地址,因此存在原对象被篡改的可能;

function copy(p) {    let c = {};    for(let i in p) {        c[i] = p[i];    }    return c;}

深拷贝

//深拷贝function deepcopy(p,c) {    let d = c || {};    for(let i in p) {        if(typeof p[i] === 'object'){            d[i] = (p[i].constructor === Array) ? []:{};            deepcopy(p[i],d[i]);        }else {            d[i] = p[i];        }    }    return d;}

ps.Object.assign()方法是浅拷贝。

 

转载于:https://www.cnblogs.com/shuqicui/p/2017-6-27.html

你可能感兴趣的文章
JavaScript基础教程1-20160612
查看>>
iOS \U7ea2 乱码 转换
查看>>
FCN图像分割
查看>>
ios xmpp demo
查看>>
python matplotlib 中文显示参数设置
查看>>
数据库事务隔离级别
查看>>
【ros】Create a ROS package:package dependencies报错
查看>>
kali linux 更新问题
查看>>
HDU1576 A/B【扩展欧几里得算法】
查看>>
廖雪峰javascript教程学习记录
查看>>
WebApi系列~目录
查看>>
Java访问文件夹中文件的递归遍历代码Demo
查看>>
项目笔记:测试类的编写
查看>>
通过容器编排和服务网格来改进Java微服务的可测性
查看>>
re:Invent解读:没想到你是这样的AWS
查看>>
PyTips 0x02 - Python 中的函数式编程
查看>>
阿里云安全肖力:安全基础建设是企业数字化转型的基石 ...
查看>>
使用《Deep Image Prior》来做图像复原
查看>>
Linux基础命令---rmdir
查看>>
iOS sqlite3(数据库)
查看>>