javascript基础: Array
程序员文章站
2022-03-10 21:00:57
...
Ext4+的文档中列出了所有javascript:Array的函数说明
1、concat( values )
将当前this的数组和values进行拼接,返回一个新数组
2、every(callback, thisObject)
遍历数组:如果你的callback返回false,则终止遍历
3、filter(callback, thisObject)
创建一个新数组,新数组中的元素为 数组中符合callback条件(即callback 返回true)元素集合
4、forEach(callback, thisObject)
遍历数组
5、indexOf( searchElement, [fromIndex] )
从数组中搜索searchElement元素,返回第一次出现的位置,如果搜索到怎发挥-1,formIndex参数追的搜索起始位置
6、join(separator )
用separator连接数组
7、lastIndexOf(searchElement, [fromIndex] )
从数组中搜索searchElement元素,返回最后一次出现的位置,如果搜索到怎发挥-1,formIndex参数追的搜索结束位置,一般fromIndex < 0
8、map(callback, [thisObject] )
根绝srcArray映射出一个新数组
9、pop()
返回数组的最后一个元素,如果集合为空,则返回undefined
10、push(item)
将item添加到数组的末尾位置
11、reduce(callback, [initValue])
我也不知道该如命名这个方法,接下来看个例子吧
[code='js']
var array1 = ['a', 'b', 'c'],
fun = function(preValue, currentValue, index, array) {
//preValue 代表前一个值,第一次循环时,preValue是为undefined的,
//如何给第一次循环提供preValue参数呢?ok这个时候[initValue],就用上了
return currentValue + '_' + preValue;
};
array1 .reduce(fun, '$'); ==>结果是 $_a_b_c
注意:IE8 或IE8-是不支持的every函数的,(IE8+没有测试过),但是Chrome是OK的
[/code]
1、concat( values )
将当前this的数组和values进行拼接,返回一个新数组
var array1 = ['a', 'b'],
array2 = ['c', 'd'],
array3 = ['e', 'f'];
array1.concat(array2) == > 生成一个新的数组 ['a', 'b', 'c', 'd']
array1.concat(array2,array3) == > 生成一个新的数组 ['a', 'b', 'c', 'd', 'e' ,'f']
注意: array1、array2、array3本身并没有变
2、every(callback, thisObject)
遍历数组:如果你的callback返回false,则终止遍历
var array1 = ['a', 'b', 'c'],
_thisObject = {name: 'zhagnshan'}
//定义个callback
var fun = function(item, index, arrayObj) {
/*
*以下的alert会显示三次
* 第一次alert: a \n 0 \n [a,b,c] \n thisObject(还记得我吗)
*/
alert(item+'\n' + index + '\n' + arrayObj + '\n' + this);
return true; //如果不返回true的话,仅遍历一次哦
}
array1.every(fun, _thisObject); //如果_thisObject为null,则在callback函数中的this指的是window
注意: IE8 或IE8-是不支持的every函数的,(IE8+没有测试过),但是Chrome是OK的
3、filter(callback, thisObject)
创建一个新数组,新数组中的元素为 数组中符合callback条件(即callback 返回true)元素集合
var array1 = ['a', 'b', 'c'],
_thisObject = {name: 'zhagnshan'}
//定义个callback
var fun = function(item, index, arrayObj) {
//return item === 'a' ,仅等于a的元素符合条件 ==》 新数组:[a]
return true; //全部满足 ==> 新数组:['a', 'b' ,'c']
}
array1.filter(fun, _thisObject); //如果_thisObject为null,则在callback函数中的this指的是window
注意: IE8 或IE8-是不支持的every函数的,(IE8+没有测试过),但是Chrome是OK的
4、forEach(callback, thisObject)
遍历数组
var array1 = ['a', 'b', 'c'],
_thisObject = {name: 'zhanghsan'}
//定义个callback
var fun = function(item, index, arrayObj) {
/*
*显示三次:
* 第一次: a \n zhanghsan
* 第二次: b \n zhanghsan
* 第三次: c \n zhanghsan
*/
alert(item + '\n' + this.name);
}
array1.forEach(fun, _thisObject); //如果_thisObject为null,则在callback函数中的this指的是window
注意: IE8 或IE8-是不支持的every函数的,(IE8+没有测试过),但是Chrome是OK的
5、indexOf( searchElement, [fromIndex] )
从数组中搜索searchElement元素,返回第一次出现的位置,如果搜索到怎发挥-1,formIndex参数追的搜索起始位置
var array1 = ['a', '2', 'c'];
array1.indexOf('a') ==> 返回 0
array1.indexOf(2) ==> 返回 -1,记住2与'2'是不相等的(===:false)(==:true)
注意:1、indexOf 比较的规则是===(值、类型必须同时相等), 而不是==
2、IE8 或IE8-是不支持的every函数的,(IE8+没有测试过),但是Chrome是OK的
6、join(separator )
用separator连接数组
var array1 = ['a', '2', 'c'];
array1.join(',') == > 结果:a,2,c
function User(name) {
this.name = name;
}
User.prototype.toString = function() {
return this.name;
}
array1 = [new User('wangxifu'), new User('zhangshan')];
array1 .join(',') == > 结果:wangxiufu,zhagnshan
注意:无
7、lastIndexOf(searchElement, [fromIndex] )
从数组中搜索searchElement元素,返回最后一次出现的位置,如果搜索到怎发挥-1,formIndex参数追的搜索结束位置,一般fromIndex < 0
var array1 = ['a', '2', 'a', 'd'];
array1.lastIndexOf('a') == > 结果:2
array1.lastIndexOf('a', -3) == > 结果:0
注意:1、lastIndexOf < 0才可以看到效果
2、 IE8 或IE8-是不支持的every函数的,(IE8+没有测试过),但是Chrome是OK的
8、map(callback, [thisObject] )
根绝srcArray映射出一个新数组
var array1 = ['a', '2', 'a', 'd'],
fun = function(item, index, arrayObj) {
return item + '_';
},
_thisObject = {name:'_'};
array1.map(fun , _thisObject) == > 结果:['a_', '2_', 'a_', 'd_']
注意:IE8 或IE8-是不支持的every函数的,(IE8+没有测试过),但是Chrome是OK的
9、pop()
返回数组的最后一个元素,如果集合为空,则返回undefined
var array1 = ['a', '2', 'a', 'd'];
array1.pop() == > 结果:d (这不是队列FILO模式吗)
注意:无
10、push(item)
将item添加到数组的末尾位置
var array1 = ['a'];
array1.push('b') == > 结果['a', 'b']
注意:无
11、reduce(callback, [initValue])
我也不知道该如命名这个方法,接下来看个例子吧
[code='js']
var array1 = ['a', 'b', 'c'],
fun = function(preValue, currentValue, index, array) {
//preValue 代表前一个值,第一次循环时,preValue是为undefined的,
//如何给第一次循环提供preValue参数呢?ok这个时候[initValue],就用上了
return currentValue + '_' + preValue;
};
array1 .reduce(fun, '$'); ==>结果是 $_a_b_c
注意:IE8 或IE8-是不支持的every函数的,(IE8+没有测试过),但是Chrome是OK的
[/code]