Array及自带的函数


filter函数:

返回True or False

var numbers = [1,2,3,4,5,4,3,2,1];
var filterResult = numbers.filter(function(item, index, array){
return (item > 2);
});
alert(filterResult); //[3,4,5,4,3]

map函数: 传入item(数组[i]),index(i),array(数组指针)

var numbers = [1,2,3,4,5,4,3,2,1];
var mapResult = numbers.map(function(item, index, array){
return item * 2;
});
alert(mapResult); //[2,4,6,8,10,8,6,4,2]

sort函数: 要由对象自己调用

默认顺序:(>返回1,<返回-1,=返回0)


image.png

把>,<,=的规定权交给用户
往sort里面塞一个函数含两个参数(递归中的前一位数,后一个数),这里为了方便传参数采用了内嵌return的方式,效果一样。

function createComparisonFunction(propertyName) {
return function(object1, object2){                    // object1和object2是默认的两个值,
var value1 = object1[propertyName];                 //这里递归返回的是字典。
var value2 = object2[propertyName];
if (value1 < value2){
return -1;
} 
else if (value1 > value2)
{
return 1;
} 
else {
return 0;
}
};
}

var data = [{name: "Zachary", age: 28}, {name: "Nicholas", age: 29}];
data.sort(createComparisonFunction("name"));
alert(data[0].name); //Nicholas

Array的操作函数
var colors = new Array(20);
var colors = ["red", "blue", "green"]; 
drivers = new Array("Mike","John");
drivers.push(",test")
drivers.pop(",test")
drivers.shift()      //取出并销毁队列中的第一个元素。
drivers.unshift(‘top1’,'top2')        //将元素添加到队列开头。
alert(drivers.length)
  • 一次性添加多个元素
    var colors2 = colors.concat("yellow", ["black", "brown"]);
  • 切割数组
    var colors = ["red", "green", "blue", "yellow", "purple"];
    var colors2 = colors.slice(1);
    var colors3 = colors.slice(1,4);
  • 倒序排列
    a.reverse();
  • 排序
    a.sort();
  • 查找元素
    a.indexOf('被搜索元素'); // 含则返回0,不含则返回-1

判断是否是Array的数据结构:
if (Array.isArray(value))
{
}
利用splite进行操作

1.删除
a.splice(0,2)会删除数组中的前两项

2.在插入red还有["green"]两项
a.splice(2,0,"red",["green"])

3.替换 (先替换a[2]再在该处插入"red",''green"两项)
a.splice (2,1,"red","green")

利用slice进行操作

b.slice(2,)
// 获取b[2]及以后的元素,但不删除他们。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容