1. 有 10 个学生的成绩存在数组中 ([40, 60, 70, 75, 78, 98, 100, 84, 79, 97]), 请统计大于等于平均成绩的人数
var sum = 0;
var num = 0;
arr.forEach(function(item){
sum += item;
})
console.log(`总成绩为${sum}`);
for(var i = 0; i < arr.length; i++){
var avg = sum / arr.length;
}
console.log(`平均成绩为${avg}`);
arr.map(function(item){
if(item > avg){
num++;
}
return num;
})
console.log(`高于平均成绩的学生有${num}个`);
2. 将"i love javascript very much"的每个单词的第一个字母,变为大写
var str = 'i love javascript very much';
var arr = str.split(' ');
console.log(arr);
var newStr1 = '';
var newStr2 = '';
var newStr3 = '';
var newStr4 = '';
for(var i = 0; i < arr.length; i++){
newStr1 = arr[i].slice(0,1).toUpperCase();
newStr2 = arr[i].slice(1,arr[i].length);
newStr3 = newStr1 + newStr2;
newStr4 += newStr3 + ' ';
}
newStr4 = newStr4.trimEnd();
console.log(newStr4);
var str = 'i love javascript very much';
var arr = str.split(' ');
console.log(arr);
var newStr1 = '';
var newStr2 = '';
for(var i = 0; i < arr.length; i++){
newStr1 = arr[i].slice(0,1).toUpperCase() + arr[i].slice(1,arr[i].length);
newStr2 += newStr1 + ' ';
}
newStr2 = newStr2.trimEnd();
console.log(newStr2);
3. 数组去重 (将数组中重复的数据去掉,只留一个) [3, 6, 5, 3, 5, 10, 6, 10, 7, 8, 3, 2] => [3, 6, 5, 10, 7, 8, 2]
var arr = [3, 6, 5, 3, 5, 10, 6, 10, 7, 8, 3, 2];
console.log(arr);
var newArr = [];
for(var i = 0; i < arr.length; i++){
if(newArr.indexOf(arr[i]) == -1){
newArr.push(arr[i]);
}
}
console.log(newArr);
var arr1 = [3, 6, 5, 3, 5, 10, 6, 10, 7, 8, 3, 2];
var newArr1 = [];
arr1.forEach(function(item){
if(newArr1.indexOf(item) == -1){
newArr1.push(item);
}
})
console.log(newArr1);
var arr3 = [3, 6, 5, 3, 5, 10, 6, 10, 7, 8, 3, 2];
for(var i = 0; i < arr3.length; i++){
for(var j = i+1; j < arr3.length; j++){
if(arr3[i] == arr3[j]){
arr3.splice(j,1);
}
}
}
console.log(arr3);
4. 数组排序
var arr = [5, 7, 6, 8, 9, 2, 4, 3, 1];
console.log('原数组:');
console.log(arr);
arr.sort(function(a,b){
return a-b;
})
console.log('从小到大排序:');
console.log(arr);
arr.sort(function(a,b){
return b-a;
})
console.log('从大到小排序:');
console.log(arr);
数组转对象 ( var arr = ['a','a','a','b','b','c','c','c','c','d','d','d','d'] => obj {a: 3, b: 2, c: 4, d: 4}
var arr = ['a','a','a','b','b','c','c','c','c','d','d','d','d']
var obj = {};
for(var i = 0; i < arr.length; i++){
if(obj[arr[i]] == undefined){
obj[arr[i]] = 1;
}else{
obj[arr[i]]++;
}
}
console.log(obj);
方法2:
var arr = ['a','a','a','b','b','c','c','c','c','d','d','d','d']
var obj = {};
for(var i = 0; i < arr.length; i++){
if(!obj[arr[i]]){
obj[arr[i]] = 1;
}else{
obj[arr[i]]++;
}
}
console.log(obj);
6. 有一个长度为 100 的数组, 求出该数组前 10 个元素之和
var arr = [];
var sum = 0;
for(var i = 0; i < 100; i++){
arr[i] = i;
}
console.log(arr);
for(var j = 0; j < arr.length; j++){
if(j < 10){
sum+=arr[j];
}
}
console.log(sum);
9. 请自己手写一个函数, 实现 数组的 push 功能 ( 原数组:var arr = [1, 2, 3] )
var arr = [1, 2, 3];
console.log(arr);
function myPush(fnArr, num) {
fnArr[fnArr.length] = num;
return fnArr;
}
myPush(arr, 5);
console.log(arr);