目录
01-求每五个数的平均值
02-把数增加为原来的30%
03-判断是否存在
04-数组方法
05-数组去重
06-插入数组并排序
07-输出对象_学生信息对象
08-数据类型存储_堆栈内存
一、数据类型之间存储的区别(重点)
01-求每五个数的平均值
定义一个含有30个整形元素的数组,按顺序分别赋予从2开始的偶数,然后按顺序每五个求出一个平均值,放在另一个数组中并输出 编程实现
var arr = [2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40...];
不要写死一个数组 定义一个空数组 循环 往空数组里push 每五个求出一个平均值
[6, 16,26, 36,46,56]
//01-求每五个数的平均值<script>// 1、定义一个含有30个整形元素的数组,按顺序分别赋予从2开始的偶数,// 然后按顺序每五个求出一个平均值,// 放在另一个数组中并输出 编程实现// var arr = [2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40...60];// 1-通过循环创建出30个元素的偶数数组var arr = [];var newArr = [];for(var i=1;i<=60;i++){if(i%2===0){arr.push(i)}}var sum = 0;// 2-按顺序每五个求出一个平均值 如何划分5个数一组 %5===0for(var i=0;i<arr.length;i++){// i = 0 1 2 3 4 5....29// 平均值 5个数的和相加 /5var item = arr[i]; //item 指的是 数组里的每一个元素sum = sum+item; if((i+1)%5===0){var a = sum / 5;newArr.push(a)//每次算完平均数后 把sum归零 保证下一组平均数的和是从0开始累加sum = 0}}console.log(newArr);//[6, 22, 48, 84, 130, 186]</script>
02-把数增加为原来的30%
编写一个函数,把数组中的每一个数都增加30%,返回一个新数组。
//02-把数增加为原来的30%var arr = [10,100,200];
function fn(){//XXXXX
}
<!-- 编写一个函数,把数组中的每一个数都增加30%,返回一个新数组 --><script>var arr = [10,100,200,300];var newArr = [];function map(){//idx 自定义的值 就是索引 index 可以for(idx in arr){var res = arr[idx] * (1+0.3);newArr.push(res);}return newArr;}let result = map(arr);console.log(result);</script>
03-判断是否存在
编写一个函数 ,判断数组中是否存在55这个元素,返回布尔值 。
var arr = [1,2,3,4,55];
var arr1 = [1,2,3,4,6,7,8];
function fn(){XXXXXX
}
fn(arr,55); //true
fn(arr1,55);//false
<script>var arr = [1, 2, 3, 4, 5, 55];var arr1 = [1, 2, 3, 4, 5, 66, 88];// function has(ary, num) {// for (var i = 0; i < ary.length; i++) {// var item = ary[i]; //数组的每一项// if (item == num) {// return true// }// }// //如果这个循环走完了,还没返回true 说明了这个数不存在数组中// return false// }// let res = has(arr, 55); //true// let res1 = has(arr1, 55);//false// console.log(res, res1);function has(ary,num){//-1 代表不存在if( ary.includes(num)==true){return true}else{return false} }var res = has(arr, 55); //truevar res1 = has(arr1, 55);//falseconsole.log(res, res1);</script>
04-数组方法
编写一个函数,norepeat(arr) 将数组中的重复元素去掉,并返回新数组
var arr = [1,2,3,44,55,66,77,2,2,2];// 判断55在不在数组中// var res = arr.indexOf(2);// var res1 = arr.indexOf(99);// console.log(res);//1// console.log(res1);//-1 代表不存在 其他就存在// let res = arr.lastIndexOf(2);// console.log(res);var res = arr.includes(9);var res1 = arr.includes(2);console.log(res1);</script>
05-数组去重
有一个从小到大排好序的数组,现在输入一个数,输入之后按照原来从小到大的排序插入到数组中
<script>// 编写一个函数,norepeat(arr) 将数组中的重复元素去掉,并返回新数组var arr = [1,22,22,22,44,3,7,88,88];var newArr = [];function norepeat(ary){for(item of ary){//indexOf 判断一个元素在不在数组里 如果不在就返回-1if(newArr.includes(item)==false){newArr.push(item)}}return newArr;}let res = norepeat(arr);console.log(res);//[1, 22, 44, 3, 7, 88]</script>
06-插入数组并排序
创建一个对象,该对象存储一个学生的信息,信息包括学号、身份证、年龄、性别,同时包含一个自我介绍的方法,用来输出该对象的索引信息
<script>// 有一个从小到大排好序的数组,现在输入一个数,输入之后按照原来从小到大的排序插入到数组中var arr = [1,2,3,4,5,6,33,33,55];// arr.push(4);// // 直接sort 只能排个位数// arr.sort(function(a,b){// return a-b// })// console.log(arr);function abc(ary,num){ary.push(num);ary.sort(function(a,b){return a-b})return ary;}var res = abc(arr,99);console.log(res);</script>
07-输出对象_学生信息对象
<script>// 6、创建一个对象,该对象存储一个学生的信息,信息包括学号、身份证、年龄、性别,// 同时包含一个自我介绍的方法,用来输出该对象的索引信息var obj = {id:1,idCard:4114021991000000,age:18,sex:"女",desc:function(){// console.log(obj.id);// console.log(obj.idCard);// console.log(obj.age);for(key in obj){console.log(obj[key]);}}}obj.desc()</script>
08-数据类型存储_堆栈内存
<!-- 栈内存:基本数据类型 --><script>// var num = 10;// var num2 = num;// num2 = 200// console.log(num);//10// console.log(num2);//200// var str = "10";// var boo = true;var obj = {name:"of",age:18,address:"北京海淀"}var obj1 = obj;obj1.name="哈哈哈哈"console.log(obj.name);console.log(obj1.name);</script>
一、数据类型之间存储的区别(重点)
-
数据类型分成
-
基本数据类型
-
number string boolean null undefined
- 复杂数据类型
Object Array ....
可以通过new 关键字创建出来的对象 都是复杂数据类型
数据类型存储区别
-
我们的变量在内存里,存储空间里分成两种 堆和栈
-
栈内存:比较小的内存:主要存储基本数据类型
-
堆内存:比较大的内存:主要存储复杂数据类型
var num = 10;var num2 = num;num2 = 200console.log(num);//10console.log(num2);//200相当于把num的值复制了一份给num2
-赋值以后两个数据没有关系 互不影响