JS数组和函数
数组的定义
所谓数组,就是将多个元素(通常是同一类型)按一定顺序排列放到一个集合中,那么这个集合我们就称之为数组
//创建一个空数组
var arr = [];
//数组声明
var arr = [1,2,3];
//获取数组长度
console.log(arr.length);
获取数组元素
var arr = ['red','blue','green'];
arr[0];//red
arr[2];//green
arr[3];//获取的是underfined,因为没有。
数组遍历
//第一种方法
for(var i = 0 ; i <arr.length; i++){
console.log(arr[i]);
}
//第二种
var arr = [1,2,3,54];
for( i in arr){
console.log(arr[i]);
}
数组中的push方法
var arr = ["red", "green", "blue"];
//push向数组中添加元素
arr.push(“pink”);
//新数组为 red green blue pink
数组案例
求一组数中的所有数的和和平均值
var sum1 = 0;
for (var i = 0; i < arrNum.length; i++) {
sum1 += arrNum[i];
}
console.log(sum1);//338
// 平均值
var abg = sum1 / arrNum.length;
console.log(abg.toFixed(2));
求一组数中的最大值和最小值,以及所在位置
var numMax = arrNum[0];//假设第一元素是最大值
var numMin = arrNum[0];//假设第一元素是最小值
var indexMax = 0;
var indexMin = 0;
for (var i = 0; i < arrNum.length; i++) {
//如果比假设的元素大就交换位置
if (arrNum[i] >= numMax) {
numMax = arrNum[i];
indexMax = i + 1;
}
//如果比它小就交换位置
if (arrNum[i] <= numMin) {
numMin = arrNum[i];
indexMin = i + 1;
}
}
console.log("最大值是:" + numMax + ",是第" + indexMax + "个元素!");
console.log("最小值是:" + numMin + ",是第" + indexMin + "个元素!");
翻转数组
var newArr2 = [];
//就是把数组倒着遍历
for (var i = arrNum.length - 1; i >= 0; i--) {
console.log(arrNum[i]);
newArr2.push(arrNum[i]);
}
console.log(newArr2);
函数
什么是函数
把一段相对独立的具有特定功能的代码块封装起来,形成一个独立实体,就是函数。
起个名字(函数名),在后续开发中可以反复调用。
函数的作用就是封装一段代码,将来可以重复使用。
//函数的声明
function 函数名(){
// 函数体
}
//函数调用
函数名();
//特点:函数体只有在调用的时候才会执行,调用需要()进行调用。可以调用多次(重复使用)
//数组去重,返回一个新数组
var arr = [1, 2, 2, 3, 5, 6, 6, 7, 8, 9];
var newArr = [];
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] === arr[j]) {
i++;
//如果相等就不要了给到j
j = i;
}
}
//往新数组添加
newArr.push(arr[i]);
}
console.log(newArr);
在遍历arr的过程中,如果在arr数组里面找当前的值,返回的索引等于当前的循环里面的i的话,那么证明这个值是第一次出现,所以推入到新数组里面,如果后面又遍历到了一个出现过的值,那也不会返回它的索引,indexof()方法只返回找到的第一个值的索引,所以重复的都会被pass掉,只出现一次的值都被存入新数组中,也达到了去重的目的。
var arr = [2, 8, 5, 0, 5, 2, 6, 7, 2]
var newArr = []
for (var i = 0; i < arr.length; i++) {
if (arr.indexOf(arr[i]) === i) {
newArr.push(arr[i])
}
}
console.log(newArr) // 结果:[2, 8, 5, 0, 6, 7]
//作业2:将数组[10,1,35,61,89,36,55]冒泡排序,从小到大
var arr = [10, 1, 35, 61, 89, 36, 55];
for (var i = 0; i < arr.length - 1; i++) {
for (var j = 0; j < arr.length - 1; j++) {
//如果比它大就去后面
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
document.write(arr)
console.log(arr);