基础JS遇到的一些题01

1.两种数组去重方法
const unique = arr =>{
let mySet = new Set(arr);
/!* let newArr =[];
for (let i = 0 ;i < arr.length;i++){
if(newArr.indexOf(arr[i]) == -1){
newArr.push(arr[i]);
}
}*!/
return mySet;
}
console.log(unique([1,2,3,1,2,5,2,7]))

2.遍历对象
var obj = {
name:'pink',
age:18,
sex:'男',
fn:function () {
console.log(1)
}
}

for(var key in obj){
console.log(key) //输出属性
console.log(obj[key]) //输出属性值
}


3.arguments使用
// arguments 的使用 只有函数才有 arguments对象 而且是每个函数都内置好了这个arguments
function fn() {
// console.log(arguments); // 里面存储了所有传递过来的实参 arguments = [1,2,3]
// console.log(arguments.length);
// console.log(arguments[2]);
// 我们可以按照数组的方式遍历arguments
for (var i = 0; i < arguments.length; i++) {
console.log(arguments[i]);

}
}
fn(1, 2, 3);
fn(1, 2, 3, 4, 5);
// 伪数组 并不是真正意义上的数组
// 1. 具有数组的 length 属性
// 2. 按照索引的方式进行存储的
// 3. 它没有真正数组的一些方法 pop() push() 等等

4. 请使用arguments完成函数getResult,实现得到输入的所有的数值中的最小值、最大值、平均数、总和等功能

​ 作业描述:
​ 函数名:getResult
​ 函数调用方式:getResult(数值1,数值2,数值3,数值4.....)
​ 函数功能:返回值是一个对象,这个对象有sum, max, min, averages等属性,分别表示实参的总和、最大值、最小值、平均数等

function getResult() {
let sum = 0
for (let i = 0;i<arguments.length;i++){
sum+=arguments[i];
}
let max = Math.max.apply(Math,arguments);
let min = Math.min.apply(Math,arguments);
let arv = sum / arguments.length
return {
sum,max,min,arv;
};

}
console.log(getResult(1,2,3));


5.以下有两个数组,一个数组arr是班级里所有的学员的名称,一个数组currentArr是提交了每日反馈的学员名单,请创建一种算法,把未提交每日反馈的学员筛选出来
var arr = ["张瑞淑", "徐海涛", "谢岗岗"];
var currentArr =["张瑞淑", "徐海涛"];
const noUp = (arr,currentArr) =>{
let no = [];
for(let i = 0; i<arr.length; i++){
if(arr[i].indexOf(currentArr[i]) < 0){
no.push(arr[i]);
}
}
console.log(no);
}

6.得到两个整数之间的随机整数 并包含这两个整数
const getRandom = (min,max) => {return Math.floor(Math.random()*(max - min + 1))};
console.log(getRandom(1,7));
7.随机点名
const arr = ['周杰伦','枯木逢春','隔壁老樊','陈鸿宇','谢春花'];
console.log(getRandom(arr[0],arr.length-1))

上一篇:Babel7.x完美解决严格模式报错:'caller', 'callee', and 'arguments' properties may


下一篇:android中遇到ERROR: Could not find method clean() for arguments这个奇葩的错误如何解决!!