作业一:判断数组是否为有序数组
要求:写一个方法(函数),参数为一个整数数组,判定数组是否有序数组,如果是返回true,不是返回false
<script>
//判断数组是否为有序数组
function isNot (arr){
//如果数组的后一位比前一位大1 或者小1 则为有序数组
for (var i = 0 ; i < arr.length ;i++){
if (arr[i] - arr[i+1] === 1 || arr[i]-arr[i+1] === -1){
return true ;
}
}
return false ;
}
console.log(isNot([1,2,3,4,5]));
</script>
作业二:求两数之和
<script>
//求两数之和 给一个整数数组 和一个整数目标值
//在该数组中找出 和为目标值的两个数 并返回他们的下标
function count(arr, target) {
//创建数组
var arrNew = [];
//遍历数组
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] + arr[j] === target) {
arrNew.push([i, j]);
}
}
}
return arrNew;
}
console.log(count([1, 2, 4, 5, 7, 0], 9));
</script>
作业四:求数组中的最大数
<script>
//找出数组中的最大值 以数组为参数
function Max(arr){
//返回的是删减过的值
return arr.reduce(function(a,b){
//1.a是数组第一个元素 b是数组的第二个元素 2.a是上一轮返回的值,b是n次+1的元素
if (a>b){
return a ;
}
return b ;
})
}
console.log(Max([1,22,54,12,31])); // ---> 54
</script>
作业五:杨辉三角
规律:
1. 二维数组 n 行 有n 个元素
2. 第一位和最后一位元素都为1
3. 中间的元素 arr[i][j] = arr[ i-1 ]arr[ j ] + arr[ i -1 ] + arr [ j ] (上一行的当前下标值 + 上一行的当前下标值的前一位的和)
<!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>
<style>
.box {
display: flex;
justify-content: center;
text-align: center;
}
.box div {
width: 30px;
border: 1px solid gray;
}
</style>
</head>
<body>
<script>
//杨辉三角 输入行数 输出多少行数
function printYhui(line) {
//创建二维数组的第一层数组 控制行数
var arr = [];
for (var i = 0; i < line; i++) { //行数
//创建一行就在其中创建一个新的数组
document.write("<div class = 'box'>"); //每一行的盒子 开始
arr[i] = [];
//遍历二维数组的第二层数组 并给其中的元素赋值 ---> 行内的个数 =行值
for (var j = 0; j <= i; j++) {
var num = 0;
// 每一行的第一个元素和最后一个元素 值都为1
if (j === 0 || j === i) {
num = 1;
}
//中间的元素 = 上一行当前位置的元素 + 上一行当前位置元素的前一个元素
else {
num = (arr[i - 1][j] + arr[i - 1][j - 1]);
}
arr[i].push(num);
//创建一个盒子包含每一个元素
document.write("<div>" + num + "</div>");
}
document.write("</div>"); //每一行的盒子 结束
}
}
console.log(printYhui(5));
</script>
</body>
</html>