filter()
- filter 接受三个参数:Array的某个元素、元素的位置和数组本身
//在数组中只删掉偶数,只保留奇数
var arr=[1,2,3,4,5]
var r = arr.filter((item,index,arr)={return item % 2 !== 0; })
- 利用filter去重
var r,
arr = ['apple', 'strawberry', 'banana', 'pear', 'apple', 'orange', 'orange', 'strawberry'];
r = arr.filter(function (element, index, self) {
return self.indexOf(element) === index;
});
去除重复元素依靠的是indexOf总是返回第一个元素的位置,后续的重复元素位置与indexOf返回的位置不相等,因此被filter滤掉了
map()
- map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
- map() 不会对空数组进行检测。
- map() 不会改变原始数组。
*接受三个参数 currentValue必须,index可选,arr 可选
//从接口得到数据 res:
let r = res.map(item => {
return {
title: item.name,
sex: item.sex === 1? '男':item.sex === 0?'女':'保密',
age: item.age,
avatar: item.img
}
})
some()
- 方法用于检测数组中的元素是否满足指定条件(函数提供)。
- 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
- 如果没有满足条件的元素,则返回false。
- some() 不会对空数组进行检测。
- some() 不会改变原始数组。
- 接受三个参数 currentValue必须,index可选,arr 可选
var arr=[2,3,5,7,8,3,9];
arr.some((element, index, self)=>{
return (element >= 10);
})
//var arr=[2,3,5,7,8,3,9]; 返回false
//var arr=[12,3,5,17,8,3,9]; 返回true
every()
- 检测数组所有元素是否都符合指定条件(通过函数提供)。
- 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
- 如果所有元素都满足条件,则返回 true。
- every() 不会对空数组进行检测。
- every() 不会改变原始数组。
- 接受三个参数 currentValue必须,index可选,arr 可选
var arr=[2,3,5,7,8,3,9];
arr.evey((element, index, self)=>{
return (element >= 10);
})
//var arr=[2,3,5,7,8,3,9]; 返回false
//var arr=[12,3,5,17,8,3,9]; 返回false
//var arr=[12,13,15,17,18,13,19]; 返回true
forEach()
- 和map不同点: forEach没有返回值
var ary = [12,23,24,42,1];
var res = ary.forEach(function (item,index,input) {
input[index] = item*10;
})
console.log(res);//--> undefined;
console.log(ary);//--> 通过数组索引改变了原数组;
lastIndexOf()
- 返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
- 接受两个参数 searchvalue必须,fromindex可选。
- lastIndexOf() 方法对大小写敏感!
- 如果要检索的字符串值没有出现,则该方法返回 -1。
var str = 'xxa xxa xxax';
var endA2 = str.lastIndexOf('a',7) //查找的是字符串前7位之内的最后一个a
indexOf()
- 搜索是正向进行的
var str = 'xxa xxa xxax';
var endA2 = str.indexOf('a',5) //查找的是字符串前5位之后的第一个a
附注:
substring()
stringObject.substring(start,stop)
- 返回的子串包括 start 处的字符,但不包括 stop 处的字符。
- 如果省略该stop参数,那么返回的子串会一直到字符串的结尾。
- 不接受负的参数
var str1="Hello world!"
document.write(st1r.substring(3))//lo world!
var str2="Hello world!"
document.write(str2.substring(3,7))//lo w
slice()
stringObject.slice(start,end)
- start -1 指字符串的最后一个字符,-2 指倒数第二个字符
- end 如果是负数,那么它规定的是从字符串的尾部开始算起的位置
- 返回一个新的字符串。包括字符串 stringObject 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符。
var str1="Hello happy world!"
document.write(str1.slice(6))//happy world!
var str2="Hello happy world!"
document.write(str2.slice(6,11))//happy
var str3="Hello happy world!"
document.write(str3.slice(-6,-1))//world
substr()
stringObject.substr(start,length)
- start -1 指字符串的最后一个字符,-2 指倒数第二个字符
- 子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串
- 返回一个新的字符串,包含从 stringObject 的 start(包括 start 所指的字符) 处开始的 length 个字符。如果没有指定 length,那么返回的字符串包含从 start 到 stringObject 的结尾的字符
var str1="Hello world!"
document.write(str1.substr(3))//lo world!
var str2="Hello world!"
document.write(str2.substr(3,7))//lo worl