1.写一个方法,求数组中的最大值
//思路:
//1.定义一个变量记录数组中的最大值
//2.遍历整个数组,让数组的每一个元素都和该变量进行对比即可
//3.当变量遇到比它大的元素,则让该变量记录该元素的值,当循环结束时,最大值产生了
function max(arr){
var max = arr[0];
for(var i=0;i<arr.length;i++){
if(max<arr[i]){
max=arr[i];
}
}
return max;
}
var arr1 = [9,10,7,3];
console.log(max(arr1));//10
2.翻转数组
//方法1:
var arr = [3, 9, 10, 11];
var newArr = arr.reverse(arr);
console.log(newArr);//[11,10,9,3]
//方法2:
ar arr = [3, 9, 10, 51];
var newArr = [];
for (var i = arr.length - 1; i >= 0; i--) {
newArr.push(arr[i]);
}
console.log(newArr);//[51, 10, 9, 3]
3.写一个方法,求数组中奇数的个数,偶数的个数
function res(arr) {
var odd = 0;
var even = 0;
for (var i in arr) {
arr[i] % 2 === 0 ? even++ : odd++;
}
console.log('偶数的个数为:' + even);
console.log('奇数的个数为:' + odd);
}
var arr = [12, 51, 80, 40, 10];
res(arr);
4.求数组的和,最大值,最小值;
var arr = [2, 3, 4, 5, 7, 8, 10];
var sum = 0;
var max = arr[0];
var min = arr[0];
arr.forEach(item => {
sum += item;
if (max < item) {
max = item;
};
if (min > item) {
min = item;
}
})
console.log('该数组的和为:' + sum); //39
console.log('该数组的最大值为:' + max); //10
console.log('该数组的最小值为:' + min); //2
5.写一个方法,把数组中相同的值放到一个数组里
var arr = [
{age:12},
{age:18},
{age:22},
{age:22},
{age:12},
{age:22},
{age:12},
{age:18},
];
function res(arr){
var o = {};
arr.forEach(item=>{
if(o[item.age]){
o[item.age].push(item);
}else{
o[item.age]=[item];
}
})
console.log(o);
}
res(arr);
6.给一个数组中字符串间添加分隔符
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
方法一:
var newArr = arr.join('|');
console.log(newArr);//1|2|3|4|5|6|7|8|9
方法二:
var str = arr[0];
var sep = '|';
for (var i = 1; i < arr.length; i++) {
str += sep + arr[i];
}
console.log(str);//1|2|3|4|5|6|7|8|9
7.两个数组中,把id相同的对象拼接到一起,返回新的数组
var arr = [{
id: 1,
name: '小明'
}, {
id: 2,
name: '小红'
}];
var arr1 = [{
id: 1,
age: 13
}, {
id: 2,
age: 18
}];
var newArr =[];
for(var i =0;i<arr.length;i++){
for(var j=0;j<arr1.length;j++){
if(arr[i].id ==arr1[j].id){
var obj = {};
obj.id = arr[i].id;
obj.name = arr[i].name;
obj.age = arr1[j].age;
newArr.push(obj)
}
}
}
console.log(arr);
console.log(arr1);
console.log(newArr);