基础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))
最新文章
- 大熊君学习html5系列之------WebStorage(客户端轻量级存储方案)
- 移动OA,致我们终将逝去的青春(程序员版)[转]
- dns简介
- Android从零开始——Android开发环境的安装
- javascript之工厂方式定义对象
- 常见的java 错误--转
- C# GDI在控件上绘图
- python selenium自动化(一)点击页面链接测试
- file-API 实现添加图片 预览缩略图(自己学习)
- comfirm 方法显示对话框
- Java基础系列——序列化(一)
- 如何备份MySQL数据库
- 大数据入门第二十一天——scala入门(一)并发编程Actor
- 在浏览器中直接调用webservice的正确写法
- MySQL无法存储Emoji表情问题
- UBoot启动代码第一阶段流程
- /usr/include/c++/4.8/functional:1697:61: error: no type named ‘type’ in ‘class std::result_of<;std::_Mem_fn<;void
- netcat 安装 及netcat 命名介绍
- EDM邮件群发:群发邮件不进垃圾箱的独家秘笈
- 模块 - random/string/os/sys/shutil/zipfile/tarfile