作者: 杜先生 | 发表于
2021-07-06 10:35 |
分类
web |
阅读 1053 |
评论 0
传递参数数量不定,可以传递 0 到多个,参数之间使用 , 隔开
var fruits = ['Banana', 'Orange', 'Apple', 'Mango'];
var length = fruits.push('Kiwi');
console.log(length); // 5
console.log(fruits); // ['Banana', 'Orange', 'Apple', 'Mango', 'Kiwi']
不需要传递参数
var fruits = ['Banana', 'Orange', 'Apple', 'Mango'];
var item = fruits.pop();
console.log(item); // 'Mango'
console.log(fruits); // ['Banana', 'Orange', 'Apple']
var fruits = [];
var item = fruits.pop();
console.log(item); // undefined
console.log(fruits); // []
不需要传递参数
var fruits = ['Banana', 'Orange', 'Apple', 'Mango'];
var item = fruits.shift();
console.log(item); // 'Banana'
console.log(fruits); // ['Orange', 'Apple', 'Mango']
var fruits = [];
var item = fruits.shift();
console.log(item); // undefined
console.log(fruits); // []
传递参数数量不定,可以传递 0 到多个,参数之间使用 , 隔开
var fruits = ['Banana', 'Orange', 'Apple', 'Mango'];
var length = fruits.unshift('Lemon', 'Pineapple');
console.log(length); // 6
console.log(fruits); // ['Lemon', 'Pineapple', 'Banana', 'Orange', 'Apple', 'Mango']
var fruits = ['Banana', 'Orange', 'Apple', 'Mango'];
var energy = fruits.join();
console.log(fruits); // ['Banana', 'Orange', 'Apple', 'Mango']
console.log(energy); // 'Banana,Orange,Apple,Mango'
特殊元素转化
var fruits = ['Banana', '', 123, NaN, undefined, null, () => { }, { name: 'szx', age: 28 }, []];
var energy = fruits.join();
console.log(energy); // 'Banana,,123,NaN,,,() => { },[object Object],'
sort(sortFn):可传递一个参数
var fruits = ['Banana', 'Orange', 'Apple', 'Mango'];
fruits = fruits.sort();
console.log(fruits) // ['Apple', 'Banana', 'Mango', 'Orange']
var fruits = [
{ name: 'Banana', price: 13 },
{ name: 'Orange', price: 8 },
{ name: 'Apple', price: 20 },
{ name: 'Mango', price: 4 }
]
fruits = fruits.sort((val1, val2) => {
if (val1.price < val2.price) {
return -1;
} else if (val1.price > val2.price) {
return 1;
} else {
return 0;
}
});
console.log(fruits)
// [{ name: 'Mango', price: 4 }, { name: 'Orange', price: 8 }, { name: 'Banana', price: 13 }, { name: 'Apple', price: 20 }]
无参数
var fruits = ['Banana', 'Orange', 'Apple', 'Mango'];
fruits.reverse();
console.log(fruits); // ['Mango', 'Apple', 'Orange', 'Banana']
可传递多个参数
var hege = ['Cecilie', 'Lone'];
var stale = ['Emil', 'Tobias', 'Linus'];
var kai = 'Robin';
var children = hege.concat(stale, kai);
console.log(hege); // ['Cecilie', 'Lone']
console.log(children); // ['Cecilie', 'Lone', 'Emil', 'Tobias', 'Linus', 'Robin']
功能强大,增删改都可以
可传递3个参数,splice(start, length, newItem)
var fruits = ['Banana', 'Orange', 'Apple', 'Mango'];
fruits.splice(2, 0, 'Lemon', 'Kiwi');
console.log(fruits); // ['Banana', 'Orange', 'Lemon', 'Kiwi', 'Apple', 'Mango']
// 从下标为 2 的元素开始,删除 0 个元素,插入指定新元素
var fruits = ['Banana', 'Orange', 'Apple', 'Mango'];
fruits.splice(2, 1);
console.log(fruits); // ['Banana', 'Orange', 'Mango']
// 从下标为 2 的元素开始,删除 1 个元素
var fruits = ['Banana', 'Orange', 'Apple', 'Mango'];
fruits.splice(2);
console.log(fruits); // ['Banana', 'Orange']
// 从下标为 2 的元素开始,后续全部删除
var fruits = ['Banana', 'Orange', 'Apple', 'Mango'];
fruits.splice(2, 1, 'Lemon', 'Kiwi');
console.log(fruits); // ['Banana', 'Orange', 'Lemon', 'Kiwi', 'Mango']
// 从下标为 2 的元素开始,先删除 1 个元素,再插入指定新元素
传递两个参数,slice(start, end)
var fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango'];
var arr1 = fruits.slice(1, 3); // ['Orange', 'Lemon']
var arr2 = fruits.slice(2); // ['Lemon', 'Apple', 'Mango']
var arr3 = fruits.slice(-5, -2); // ['Banana', 'Orange', 'Lemon']
console.log(fruits); // ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']
传递两个参数:every(function(currentValue, index, arr){ }, thisValue)
此函数的要求:
- 参数 1:必需,进行条件判断的当前元素,数组中的每个元素都会被依次传入
- 参数 2:可选,当前元素的索引值
- 参数 3:可选,当期元素属于的数组对象
- 注意不要写成 箭头函数,否则无法指定当前函数的 this 指向;this 默认指向 window
// 判断所有元素是否都小于 30
var ages = [32, 33, 16, 40];
var bool = ages.every(function (item) {
return item < 30;
})
console.log(bool); // false
传递两个参数:some(function(currentValue, index, arr){ }, thisValue)
此函数的要求:
- 参数 1:必需,进行条件判断的当前元素,数组中的每个元素都会被依次传入
- 参数 2:可选,当前元素的索引值
- 参数 3:可选,当期元素属于的数组对象
- 注意不要写成 箭头函数,否则无法指定当前函数的 this 指向;this 默认指向 window
// 判断是否有元素小于 30
var ages = [32, 33, 16, 40];
var bool = ages.some(function (item) {
return item < 30;
})
console.log(bool); // true
every() 和 some() 类似,every 是所有元素都满足条件才返回 true,some 是只要有一个满足条件就返回 true IE 9 及其以上支持
传递两个参数:filter(function(currentValue, index, arr){ }, thisValue)
此函数的要求:
- 参数 1:必需,进行条件判断的当前元素,数组中的每个元素都会被依次传入
- 参数 2:可选,当前元素的索引值
- 参数 3:可选,当期元素属于的数组对象
- 注意不要写成 箭头函数,否则无法指定当前函数的 this 指向;this 默认指向 window
// 获取小于 35 的元素
var ages = [32, 33, 16, 40];
var arr = ages.filter(function (item) {
return item < 35
})
console.log(arr); // [32, 33, 16]
从数组的开头(或指定位置)开始查找,找到第一个相等的元素后返回该元素在整个数组中的对应索引值;找不到返回 -1。
传递两个参数:indexOf(item, start)
var fruits=['Banana','Orange','Apple','Mango','Banana','Orange','Apple'];
var a = fruits.indexOf('Orange'); // 1
var b = fruits.indexOf('Orange',4); // 5
var c = fruits.indexOf('orange'); // -1
从数组的末尾(或指定位置)开始查找,找到第一个相等的元素后返回该元素在整个数组中的对应索引值;找不到返回 -1。
传递两个参数:lastIndexOf(item, start)
var fruits=['Banana', 'Orange', 'Apple', 'Mango', 'Banana', 'Orange', 'Apple'];
var a = fruits.lastIndexOf('Orange'); // 5
var b = fruits.lastIndexOf('Orange', 4); // 1
var c = fruits.lastIndexOf('Orange', 5); // 5
var d = fruits.lastIndexOf('orange'); // -1
传递两个参数 map(function(currentValue, index, arr), thisValue)
此函数的要求:
- 参数 1:必需,进行逻辑处理的当前元素,数组中的每个元素都会被依次传入
- 参数 2:可选,当前元素的索引值
- 参数 3:可选,当期元素属于的数组对象
- 注意不要写成 箭头函数,否则无法指定当前函数的 this 指向;this 默认指向 window
// 将数组中的每个元素都 乘以2,得到一个新数组
var fruits = [1, 2, 3, 4, 5, 6];
var arr = fruits.map(function (item) {
return item * 2
})
console.log(arr); // [2, 4, 6, 8, 10, 12]
接受两个参数,reduce(function(total, currentValue, currentIndex, arr), initialValue)
- 此函数的要求:
- 参数1:必需,含义为每一循环的累加起始值。上一次累加后的值会作为下一循环的累加起始值
- 参数2:必需,进行累加的当前元素,数组中的每个元素都会被依次传入
- 参数3:可选,当期元素属于的数组对象
- 参数4:可选,当前元素所属的数组对象
var nums = [1, 2, 3, 4, 5, 6];
var sum = nums.reduce(function (total, item) {
return total + item;
}, 30)
console.log(sum) // 51
reduce() 和 reduceRight() 作用相同。reduce() 是数组中从左向右累加,reduceRight() 是从右向左累加
传递两个参数 forEach(function(currentValue, index, arr), thisValue)
- 此函数的要求:
- 参数 1:必需,进行逻辑处理的当前元素,数组中的每个元素都会被依次传入
- 参数 2:可选,当前元素的索引值
- 参数 3:可选,当期元素属于的数组对象
- 注意不要写成 箭头函数,否则无法指定当前函数的 this 指向;this 默认指向 window
var nums = [1, 2, 3, 4, 5, 6];
var sum = 0;
nums.forEach(function (item) {
sum += item;
},30);
console.log(sum) // 21
温馨提示