欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

javascript基础: Array

程序员文章站 2022-03-10 21:00:57
...
Ext4+的文档中列出了所有javascript:Array的函数说明

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]
相关标签: Array