面试题
由bq4nqidt创建,最终由bq4nqidt 被浏览 17 用户
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
</html>
<script>
//给定数组,求数组中最大元素的下标
function x(){
let arr = [1,5,4,3,8,6];
if(!arr.length)return
if(arr.length ===1)return 0
console.log('最大值的下标为',arr.indexOf( Math.max(...arr)));
}
x()
//给一个有序数组,计算出现次数最多的元素
let arr = [1, 1,1,1,1, 2, 3, 4, 5, 5, 5, 6]
function findMost(arr) {
if (!arr.length) return
if (arr.length === 1) return 1
let res = {}
let maxName, maxNum = 0
// 遍历数组
arr.forEach((item) => {
res[item] ? res[item] += 1 : res[item] = 1
})
// 遍历 res
for (let r in res) {
if (res[r] > maxNum) {
maxNum = res[r]
maxName = r
}
}
console.log('出现次数最多的元素为:' ,maxName,'出现次数为:' , maxNum)}
findMost(arr);
//给定一个严格递增的有序数组,找到两个数字其和等于给定数字,输出有多少种情况
function getIndexArr(array,target){
for (let i = 0; i < array.length; i++) {
for (let j = i + 1; j < array.length; j++) {
if (array[i] + array[j] === target) {
console.log('值为',target,'由',array[i],'+',array[j]);
}
}
}}
getIndexArr([1, 2, 3, 4, 5, 6, 9],10)
//给定两个时间,计算相差的天数(自己写代码实现,不使用系统时间实现)
function getDiffDay(date_1, date_2) {
// 计算两个日期之间的差值
let totalDays,diffDate
let myDate_1 = Date.parse(date_1)
let myDate_2 = Date.parse(date_2)
// 将两个日期都转换为毫秒格式,然后做差
diffDate = Math.abs(myDate_1 - myDate_2) // 取相差毫秒数的绝对值
totalDays = Math.floor(diffDate / (1000 * 3600 * 24)) // 向下取整
console.log('相差的天数',totalDays);
}
// 使用
getDiffDay('2021-10-1', '2022-8-25') // 32
//给定一个有序数组,去掉重复元素
function getset(arr){
if(!arr.length) return;
if(arr.length==1) return arr;
let newarr = new Set(arr)
console.log(newarr);
}
getset([1,2,3,3,3,4,4,5,5,5])
</script>
\