js数组对象操作

声明创建一个数组对象:var arr = new Array(); 或者 var arr = [];

1、cancat()

连接两个或者多个数组,并且返回该数组,语法:array.concat(object,object,......);

let arr = [{index:'0'},{name:'xxx'}];
let arr_1 = [{index:'3'},{index:'4'}];
let newArr = arr.concat(arr_1); 
console.log(JSON.stringify(newArr)); // [{"index":"0"},{"name":"xxx"},{"index":"3"},{"index":"4"}]

2、join()

通过指定字符(参数)对数据进行分割,返回字符串,参数省略的话则用默认用逗号为分隔符

let arr = ['1','2','3'];
let str = arr.join('-');
console.log(str);  // 1-2-3

3、pop()

删除数组的最后一个对象,返回该删除元素的值

let arr = [{index:'0'},{name:'xxx'}];
let pop_data = arr.pop();
console.log(JSON.stringify(pop_data)); // {"name":"xxx"}
console.log(JSON.stringify(arr)); // [{"index":"0"}]

4、push()

向数组末尾添加一个或者多个对象,语法:array.push(newObject1,newObject2,.....);

let arr = new Array();
let obj_1 = { index:'1', name:'aaa'};
let obj_2 = { index:'2', name:'bbb'};
arr.push(obj_1,obj_2);
console.log(JSON.stringify(arr)); // [{"index":"1","name":"aaa"},{"index":"2","name":"bbb"}]

5、shift()

删除数组的第一个对象,并返回删除的元素

let arr = [{index:'0'},{name:'aaa'}];
let shift_data = arr.shift();
console.log(JSON.stringify(shift_data)); // {"index":"0"}
console.log(JSON.stringify(arr)); // [{"name":"aaa"}]

6、unshift()

向数组开头添加一个或者多个元素,并返回新的长度

let arr = [{index:'1'},{name:'aaa'}];
let obj_1 = {index:'2'};
let obj_2 = {index:'3'};
let length = arr.unshift(obj_1,obj_2);
 console.log(length); // 4
console.log(JSON.stringify(arr)); // [{"index":"2"},{"index":"3"},{"index":"1"},{"name":"aaa"}]

7、slice()

从已知数组中返回指定选中的数据(不包括end 对应的元素),如果省略 end 将复制 start 之后的所有元素,该操作不会修改原数组的数据,slice(start,end);

let arr = ['1','2','3','4','5'];
let new_array = arr.slice(1,arr.length);
 console.log(JSON.stringify(new_array)); //["2","3","4","5"]
console.log(JSON.stringify(arr));//["1","2","3","4","5"]

8、splice()

向数组中删除/添加对象,并返回被删除的元素
splice(index,count,item1,item2,......);

  • index:规定删除/添加项目的起始位置,使用负数从数组的结尾处规定位置。
  • count:规定要删除项目的数量
  • item1,item2...:向项目中添加添加新的对象
let arr = ['1','2','3'];
let new_array = arr.splice(0,2,'4','5');
console.log(JSON.stringify(new_array));//["1","2"]
console.log(JSON.stringify(arr)); //["4","5","3"]

9、sort()

方法用户对数组的排序,sort(sortby),sortby可选,必须是函数。如调用方法没有使用参数,则按字母顺序进行排序。

let arr = [{index:'100'},{index:'200'},{index:'50'},{index:'10'}];
let new_array = arr.sort(function(a,b) {
      let n1 = Number(a.index);
      let n2 = Number(b.index);
      return n1 - n2;
 });
console.log(JSON.stringify(new_array)); // [{"index":"10"},{"index":"50"},{"index":"100"},{"index":"200"}]

10、some()

只要有一个满足的就返回true,没有满足的返回false

let arr = [1,2,3];
let arr_some = arr.some(function(item,index,array){
     return item>1; 
})
console.log(arr_some); // true

11、every()

验证数组中是否每个元素都满足指定的条件

let arr = [1,2,3];
let arr_every = arr.every(function(item,index,array){
     return item>1; 
})
console.log(arr_every); // false

12、forEach()

没有返回值,可以不知道数组长度
arr.forEach(function(res,index){ })

13、map()

返回值组成新数组,原数组不变

let newarr=[1,2,3].map(function(res,index){
  return  res+1;
});
console.log(newarr); // [2,3,4]

13、filter()

过滤通过条件的元素组成一个新数组,原数组不变

let newarr=[1,2,3,4].filter(function(res){
  return  res >  2
});
console.log(newarr); // [3,4]

14、find()

查找出第一个符合条件的数组成员,并返回该成员,如果没有找到就返回undefine

let arr = [{index: 20},{index: 40},{index: 60}]
let res = arr.find((val,index,arr)=>{
     return val.index > 30
})
console.log(res) // {index: 40}

15、findIndex()

找到的是位置,找不到返回 -1

let arr = [{index: 20},{index: 40},{index: 60}]
let res = arr.findIndex((val,index,arr)=>{
     return val.index > 30
})
console.log(res) // 1

16、fill()

填充,arr.fill(填充的东西,start,end) 包括end

let arr = new Array(4)
arr.fill('默认值')
console.log(arr) // ['默认值','默认值','默认值','默认值']
arr.fill('默认值',1,2)
console.log(arr) // [empty,'默认值','默认值',empty]
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,378评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,356评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,702评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,259评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,263评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,036评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,349评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,979评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,469评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,938评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,059评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,703评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,257评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,262评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,501评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,792评论 2 345

推荐阅读更多精彩内容