Mr.Xu:基础基础基础
1.script为什么放在body下边
加载顺序是从上到下的,js要操作dom元素,所以要等dom先加载完后再去操作
2.dom的获取(h5)
//根据id选择(一般id不会重复使用)
document.querySelector('#dv');
//由于class 是用来批量操作的,所以对于批量的东西批量去选中,所以根据class来选择元素用这种方式
document.querySelectorAll('.dv');
3.绑定事件
//当script标签放在body标签前面的时候,获取元素,js事件必须放在加载事件window.onload中
window.onload = function(){
var a = document.querySelectorAll('.dv');
a.forEach(function(element){
element.onclick = function(){
console.log(123)
}
})
}
//当script标签放在body下面的时候,绑定事件可以不用加window.onload
var a = document.querySelector('#dv');
a.onclick = function(){
console.log(111)
}
4.写一个方法,返回一个数组,数组中给每个人的年龄都+1
var arr = [{
name: 'AA',
age: 18,
height: '158'
}, {
name: 'BB',
age: 19,
height: '158'
}, {
name: 'CC',
age: 20,
height: '159'
}, {
name: 'DD',
age: 38,
height: '178'
}, {
name: 'EE',
age: 28,
height: '168'
}]
function res(arr) {
var newArr = [];
arr.forEach(item => {
var obj = {}
obj.name = item.name;
obj.age = item.age + 1;
obj.height = item.height;
newArr.push(obj)
})
return newArr;
}
console.log(res(arr));
console.log(arr);
5.写一个方法传个数组进去,如果长度比6大就去掉一个,如果比6小就添加一个,补够6个
function res(arr) {
if (arr.length < 6) {
arr.push(1);
res(arr);
} else if (arr.length > 6) {
arr.pop();
res(arr);
} else if (arr.length == 6) {
return arr;
}
}
var arr = [2, 9, 0, 0, 9, 8, 7, 0];
res(arr);
console.log(arr);
6.把年龄相同的放到一个数组里
var arr = [{
age: 12
}, {
age: 22
}, {
age: 29
}, {
age: 22
}, {
age: 12
}, {
age: 39
}, {
age: 12
}];
function res(arr) {
var o = {};
for (var i = 0; i < arr.length; i++) {
var item = arr[i];
if (o[item.age]) {
o[item.age].push(item);
} else {
o[item.age] = [item];
}
}
console.log(o);
}
res(arr);
7.合并两个数组对象中id一样的对象
var arr1 = [{
name: 'vivi',
id: 1
}, {
name: 'bibi',
id: 2
}, {
name: 'titi',
id: 3
}]
var arr2 = [{
id: 1,
age: 18
}, {
id: 2,
age: 19
}, {
id: 3,
age: 20
}]
var newArr = [];
function res(arr1, arr2) {
for (var i = 0; i < arr1.length; i++) {
for (var j = 0; j < arr2.length; j++) {
if (arr1[i].id === arr2[j].id) {
var obj = {};
obj.name = arr1[i].name
obj.age = arr2[i].age
obj.id = arr1[i].id
newArr.push(obj)
}
}
}
console.log(newArr)
}
res(arr1, arr2)
8.判断一个数是否是质数
function isZhishu(num) {
if (num != 1 && num % 2 === 0) {
console.log('质数')
} else {
console.log('不是质数')
}
}
isZhishu(9)
9.求斐波那契数列Fibonacci中的第n个数是多少?1 1 2 3 5 8 13 21...
function getFib(n) {
var n1 = 1;
var n2 = 1;
var n3;
for (var i = 3; i <= n; i++) {
n3 = n1 + n2;
n1 = n2;
n2 = n3;
}
return n3;
}
var r = getFib(6);
console.log(r);
10.求数组中的最大值和最小值,以及所在的位置
var arr = [1, 2, 3, 4, 0, 9];
var max = arr[0];
var min = arr[0];
var maxIndex = 0;
var minIndex = 0;
arr.forEach((item, index) => {
if (max < item) {
max = item;
maxIndex = index;
}
if (min > item) {
min = item;
minIndex = index
}
})
console.log(max, maxIndex);
console.log(min, minIndex);