js常见编程题

23 篇文章 0 订阅
<!DOCTYPE>
<HTML>
<head>
	<title>js常见编程题</title>
	<style type="text/css">
	</style>
</head>
	<body>
		<script type="text/javascript">
			//实现数组乱序
			function mixArray(){
				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;
				});
				console.log(a);
			}
			mixArray();
			//reduce的使用
			//有一个长度为100的数组,请以优雅的方式求出该数组的前10个元素之和
			function useReduce(){
				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);
				console.log(sum);
			}
			useReduce();

			//有一个长度为100的数组,值为其所在位置的索引
			function requireIndex(){
				var a = new Array(100);
				a = a.join(",").split(",").map(function(item,index){
					return index;
				});
				console.log("索引"+a);
			}
			requireIndex();

			//如何消除数组中重复的元素
			function deRepeat(arr){
				let newArr = [];
				arr.map(function(item){
					if(newArr.indexOf(item) === -1){
						newArr.push(item);
					}
				});
				console.log("消除数组中重复的元素\t"+newArr);
			}
			deRepeat([1,1,1,2,2,2,3,3,3,4,4,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(pi[i],d[i]);
					}else{
						d[i] = p[i];
					}
				}
				return d;
			}


		</script>>
	</body>
</HTML>

原文地址:https://www.cnblogs.com/shuqicui/p/2017-6-27.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值