目录
JS1 直角三角形编辑
JS2 文件扩展名
JS3 分隔符
JS4 单向绑定
JS5 创建数组
JS6 判断版本
JS7 无重复数组
JS8 数组排序
JS9 新数组
JS10 计数器
JS11 列表动态渲染
JS13 类继承
JS18 继承
JS14 参数解析器
JS15 生成页码
JS16 总成绩排名
JS17 子字符串频次
JS19 判断斐波那契数组
JS20 数组扁平化
JS22 判断质数
JS1 直角三角形
JS2 文件扩展名
请补全JavaScript代码,要求以字符串的形式返回文件名扩展名,文件名参数为"filename"。
JS3 分隔符
请补全JavaScript代码,要求返回参数数字的千分位分隔符字符串。
function _comma(number) {
// splice插入处理
const arr = number.toString().split('');
const len = arr.length;
// 主要处理点:插入位置的计算
for(let i = len - 3; i >= 0; i = i - 3) {
arr.splice(i, 0, ',');
}
return number > 1000 ? arr.join('') : number.toString();
}
JS4 单向绑定
请补全JavaScript代码,要求每当id为"input"的输入框值发生改变时触发id为"span"的标签内容同步改变。
注意:
1. 必须使用DOM0级标准事件(onchange)
JS5 创建数组
请补全JavaScript代码,要求返回一个长度为参数值并且每一项值都为参数值的数组。
注意:
1. 请勿直接使用for/while
const _createArray = (number) => {
// 补全代码
return new Array(number).fill(number);
}
JS6 判断版本
请补全JavaScript代码,该函数接收两个参数分别为旧版本、新版本,当新版本高于旧版本时表明需要更新,返回true,否则返回false。
注意:
1. 版本号格式均为"X.X.X"
2. X∈[0,9]
3. 当两个版本号相同时,不需要更新
const _shouldUpdate = (oldVersion, newVersion) => {
// 补全代码
const toVersionNum = version => {
return Number(version.split('.').join(''))
};
return newVersion > oldVersion
}
JS7 无重复数组
请补全JavaScript代码,实现一个函数,要求如下:
1. 根据输入的数字范围[start,end]和随机数个数"n"生成随机数
2. 生成的随机数存储到数组中,返回该数组
3. 返回的数组不能有相同元素
注意:
1. 不需要考虑"n"大于数字范围的情况
知识点:(1)Set数据的长度使用size属性获取(2)新增元素使用add方法
const _getUniqueNums = (start,end,n) => {
// 重复判断,无重复数组
let arr = new Set();
while(arr.size < n) {
const num = Math.floor(Math.random() * (end - start + 1) + start);
arr.add(num);
}
return [...arr];
}
JS8 数组排序
请补全JavaScript代码,根据预设代码中的数组,实现以下功能:
1. 列表只展示数组中的name属性
2. 实现点击"销量升序"按钮,列表内容按照销量升序重新渲染
3. 实现点击"销量降序"按钮,列表内容按照销量降序重新渲染
注意:
1. 必须使用DOM0级标准事件(onclick)
JS9 新数组
请补全JavaScript代码,该函数接受两个参数分别为数组、索引值,要求在不改变原数组的情况下返回删除了索引项的新数组。
const _delete = (array,index) => {
// 本题考点:concat、splice、深拷贝
const arr = array.concat();
arr.splice(index, 1);
return arr;
}
JS10 计数器
请补全JavaScript代码,要求每次调用函数"closure"时会返回一个新计数器。每当调用某个计数器时会返回一个数字且该数字会累加1。
注意:
1. 初次调用返回值为1
2. 每个计数器所统计的数字是独立的
本题考点:闭包、匿名函数
const closure = () => {
let count = 0;
return function() {
count++;
return count;
//或者直接return ++count
}
}
JS11 列表动态渲染
请补全JavaScript代码,将预设代码中的"people"数组渲染在页面中。实现下面的列表:
牛油1号 20岁牛油2号 21岁牛油3号 19岁
JS12 模板字符串
请补全JavaScript代码,实现以下功能:
1. 根据已有的person对象的注册时间求出距离当前时间的天数(天数向下取整)。
2. 将获得的天数和person数据拼接成字符串,作为h2标签的内容。
注意:使用模板字符串进行字符串拼接,字符串最终内容如:尊贵的牛客网2级用户小丽您好,您已经注册牛客网3天啦~
知识点:(1)日期转时间戳方法:前面添加 + 转为数字
JS13 类继承请补全JavaScript代码,完成类的继承。要求如下:
1. "Chinese"类继承于"Human"类
2. "Human"类实现一个函数"getName",返回该实例的"name"属性
3. "Chinese"类构造函数有两个参数,分别为"name"、"age"
4. "Chinese"类实现一个函数"getAge",返回该实例的"age"属性
知识点:super的传递
JS18 继承
请补全JavaScript代码,实现以下功能:
1. 给"Human"构造函数的原型对象添加"getName"方法,返回当前实例"name"属性
2. 将"Chinese"构造函数继承于"Human"构造函数
3. 给"Chinese"构造函数的原型对象添加"getAge"方法,返回当前实例"age"属性
JS14 参数解析器
const _getParams = (url) => {
// 补全代码
const obj = {};
const serachParams = url.split('?')[1].split('&');
serachParams.forEach(item => {
const [key, value] = item.split('=');
obj[key] = value;
});
return obj;
}
JS15 生成页码
JS16 总成绩排名
请补全JavaScript代码,要求将数组参数中的对象以总成绩(包括属性"chinese"、"math"、"english")从高到低进行排序并返回。
const _rank = array => {
array.sort((left, right) => {
let lg = left.chinese + left.math + left.english
let rg = right.chinese + right.math + right.english
return rg - lg
})
return array
}
JS17 子字符串频次
请补全JavaScript代码,该函数接受两个参数分别为字符串、子字符串,要求返回子字符串在字符串中出现的频次。
JS19 判断斐波那契数组请补全JavaScript代码,要求以Boolean的形式返回参数数组是否为斐波那契数列。在数学上,斐波那契数列以如下方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N)
注意:
1. [0,1,1]为最短有效斐波那契数列
首先判断数组参数的长度是否小于3,第一、二项的值是否分别为0、1,如果其中一项不符合,那么返回false遍历数组参数,从第三项开始,判断该项的值是否符合F(n)=F(n - 1)+F(n - 2),是则continue,否则返回false当数组遍历完成时返回true
const _isFibonacci = array => {
if(array.length < 3 || array[0] !==0 || array[1] !==1) return false;
for(let i=2; i
JS20 数组扁平化
🌟🌟🌟🌟🌟
方法一:递归+reduce方法
使用reduce承接每次递归遍历的结果
const _flatten = arr => {
return arr.reduce((target, item) => {
return target.concat(Array.isArray(item) ? _flatten(item) : item);
}, [])
}
方法二: 递归+空数组
使用[ ]承接每次递归遍历的结果
const _flatten = arr => {
let res = [];
arr.forEach(item => {
if(Array.isArray(item)) {
res = res.concat(_flatten(item))
} else {
res.push(item);
}
});
return res;
}
方法三:扩展运算符
通俗而言就是对arr进行“扒皮”,一层一层扒,直至arr没有数组
const _flatten = arr => {
/*扩展运算符*/
while(arr.some(item => Array.isArray(item))) {
arr = [].concat(...arr);
}
return arr;
}
方法四:利用字符串特性,可以将嵌套数组拍平
const _flatten = arr => {
return arr.toString().split(',').map(item => Number(item));
}
JS22 判断质数
请补全JavaScript代码,要求在Number对象的原型对象上添加"_isPrime"函数,该函数判断调用的对象是否为一个质数,是则返回true,否则返回false。
valueOf()
函数用于返回指定对象的原始值。
Number | 数字值。 |
// Number:返回数字值 var num = 15.26540; document.writeln( num.valueOf() ); // 15.2654
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)