<!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>
js常见编程题
最新推荐文章于 2022-07-10 04:13:40 发布