1、编写函数map(arr) 把数组中的每一位数字都增加30%,并返回一个新数组
思路:首先定义一个空的数组用来接收计算后的结果,使用for...of来遍历的到原数组中的值,然后用数组的push方法将计算后的结果追加到新的数组里面。最后将新数组返回即可。
var newArr = [];
function map(arr) {
for (var v of arr) {
newArr.push(v * 1.3);
}
return newArr;
}
var result = map([10, 100, 1000]);
console.log(result);
2、编写函数 判断数组中是否存在60这个元素,返回布尔类型
方法1:在函数中使用for of 来循环遍历到所有的值,如果遍历数组的值中有和要比较的值相等时,就return true。否则在循环结束的时候return false。
function has(arr, num) {
for (var v of arr) {
if (v == num) {
return true;
}
}
// 函数的代码能执行到这里,说明循环中 return true 没有执行,没有元素跟num相等
return false;
}
var result = has([2, 4, 5, 6, 2, 1], 60);
console.log(result);
方法2:使用了数组中的indexOf方法,如果要检索的字符串值没有出现,则该方法返回 -1
function has2(arr, num) {
if (arr.indexOf(num) == -1) {
return false;
} else {
return true;
}
}
var result = has2([2, 4, 5, 60, 2, 1], 60);
console.log(result);
方法3:Array.prototype.includes方法返回一个布尔值,表示某个数组是否包含给定的值
var arr = [2, 4, 5, 60, 2, 1];
console.log(arr.includes(60));
3、 编写函数norepeat(arr) 将数组的重复元素去掉,并返回新的数组
思路:首先定义一个数组接收返回元素,在函数中使用for of 循环来遍历数组中的每一个元素。接着对新数组中的元素使用indexOf进行判断,若不存在恒等于-1,则使用数组的push方法进行添加,最后将新数组进行return即可。不要忘记调用函数哦
var arr = [1, 1, 2, 3, 4, 4, 2, 1, 3, 5];
var newArr = [];
function norepeat(arr) {
for (var v of arr) {
//v 是否在 newArr 中
if (newArr.indexOf(v) == -1) {
newArr.push(v);
}
}
return newArr;
}
console.log(norepeat(arr));
补:
splice() 方法向/从数组添加/删除项目,并返回删除的项目。
注释:splice() 方法会改变原始数组。
index 必需。整数,指定在什么位置添加/删除项目,使用负值指定从数组末尾开始的位置。 howmany 可选。要删除的项目数。如果设置为 0,则不会删除任何项目。 item1, ..., itemX 可选。要添加到数组中的新项目。
4、 有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
方法1:使用数组的两函数,利用push函数可以将要输入的数字添加到尾部,然后在使用数组的sort比较函数方法进行降序或升序排序即可。
var arr = [1, 2, 4, 5, 6];
arr.push(3);
arr.sort(function (a, b) {
return a - b;
});
console.log(arr);
方法2:在函数中使用for in 遍历数组,将遍历到的元素赋值给一个变量,然后比较该元素与要插入元素的大小。若此元素大于等于要插入的元素,则将该元素的下标赋值给一个变量,结束循环。最后在使用数组的splice方法,在指定位置添加元素即可。
var num = 3;
for (var i in arr) {
var v = arr[i];
if (num <= v) {//比较数组元素和要插入元素的大小
var index = i;//记录该元素的索引
break;
}
}
arr.splice(index, 0, num);
console.log(arr);
方法3:在函数内部首先从数组的最后一个元素开始进行判断,若要插入元素大于最后一个元素,则直接在数组后面添加就行。否则,需要利用for循环来对数组进行遍历。如果要插入元素小于数组中的某个元素,就在该元素前面进行添加要插入的元素退出循环即可。
var arr = [1, 2, 4, 6, 7, 10];
function insert(m) {
if (m > arr[arr.length - 1]) {
//因为这是一个从小到大的数组,让插入的元素与最后一个数的对比
arr.push(m);
document.write(arr); //直接返回输出结果
} else {
for (var i = 0; i < arr.length; i++) {
if (m <= arr[i]) {
//让插入的元素m和arr数组里的每个值进行比较
arr.splice(i, 0, m); //在第i个地方插入m
break; //打断循环,不然会一直下去,造成死循环。
}
}
document.write(arr);
}
}
insert(5);