js中数组的操作1

    // 1. 数组长度

    var arr = ['aaa', 'bbb', 'ccc', 'ddd'];

    var l = arr.length;

    console.log("arr 的长度: " + l);

    // 2.数组索引

    var arr = ['aaa', 'bb', 'cc', 'dd'];

    var x = arr[1];

    console.log('数组下标为1, 也就是数组第二个元素是:' + x)

    arr[1] = '修改过的值'

    var x = arr[1];

    console.log('数组下标为1, 也就是数组第二个元素是(修改后的):' + x)

    // 3. indexOf --> : 返回指定元素的位置, 如果没有则返回-1

    var arr = ['aaa', 'bbb', 'ccc', 'ddd']

    var index = arr.indexOf('aaa');

    var index2 = arr.indexOf('111');

    console.log("aaa 在arr中的位置 " + index);

    console.log("111 在arr中的位置 " + index2);

      // 当数组的元素为对象时

    var obj1 = { id: 1, name: '西安' };

    var obj2 = { id: 2, name: '北京' };

    var obj3 = { id: 3, name: '成都' };

    var arr = [obj1, obj2, obj3];

    var obj = { id: 1, name: '西安' }

    var index = arr.indexOf(obj);

    var index2 = arr.indexOf(obj1);

    console.log("查看对象是否也能通过indexOf返回下表" + index);

    console.log("查看对象是否也能通过indexOf返回下表" + index2);

    // 事实表明, 只有当字面量相等时的对象实在对象数组中查找不到的, 除非时引用也相等时才能找到其下标

    // 4.slice -->  接收1个或两个参数

    //              当参数只有1个时,返回从参数指定位置到数组结尾的所有项

    //              当参数有两个时,则将第一个参数作为起始,第二个参数作为终止下标返回数组项;这里不包含第二个参数所在的下表项,也就是 [arg1, arg2)

    //              方法返回一个新数组, 原数组并不会改变

    var arr = ['aaa', 'bbb', 'ccc', 'ddd', 'eee'];

    var arr2 = arr.slice(1);

    console.log('arr.slice(1) : ' + arr2)

    var arr3 = arr.slice(0, 3);

    console.log('arr.slice(0, 1) : ' + arr3)

    var arr4 = arr.slice(1, -2);

    console.log('arr.slice(-1) : ' + arr4)

    // 当参数为负数时,计算参数应该时 此负数加上数组长度去计算

    // 5. push -->  在数组后面添加若干元素,返回添加后数组的长度

    var arr = ['aaa', 'bbb', 'ccc', 'ddd'];

    var x = arr.push('ee', 'dd');

    console.log("push 后的数组 以及长度: " + arr + " :" + x);

    //  实时证明这个方法会改变原数组

    // 6.pop --> 删除数组末尾元素, 返回被删除的元素, 若数组为空则返回undefined

    var arr = ['aaa', 'bbb', 'ccc', 'ddd', 'eee'];

    var x = arr.pop();

    console.log('pop 后的数组 以及pop出来的数组项:' + arr + " _  " + x);

    // 此方法也会改变原数组

    var args = 'aaa'

    var x = arr.pop(0);

    console.log('pop 后的数组 以及pop出来的数组项:' + arr + " _  " + x);

    // 并且传入参数不起作用

    // 7. unshift --> 删除数组头部第一项, 返回删除的数组项

    var arr = ['aaa', 'bbb', 'ccc', 'ddd'];

    var x = arr.shift('111', '222');

    console.log('shift 后的数组 以及shift出来的值:' + arr + " _  " + x);

    // 8. unshift --> 在数组头部添加若干元素,返回添加后数组的长度

    var arr = ['aaa', 'bbb', 'ccc', 'ddd'];

    var x = arr.unshift('1111', '222');

    console.log('shift 后的数组 以及shift出来的长度:' + arr + " _  " + x);

    // 9. sort --> 对数组进行排序, 返回排序后的数组, 默认把数组每一项转化成字符后再进行排序。会改变原数组

    var arr = ['a', 'c' , 'd', '0', '1']

    var arr1 = arr.sort();

    console.log("排序后的arr1 和 原来的arr " + arr1 + '和' + arr);

        //    可以通过一个自定义的方法来排序

        //    此函数接受俩个参数, 如果要第一个参数再第二个参数前面则返回负数,如果要第一个参数再第二个参数后面则返回正数,相等则返回0

    function compare (arg1, arg2) {

      return arg1 - arg2

    }

    var arr = [3, 2, 8, 9, 1]

    console.log('排序后的数组 ' + arr.sort(compare));

    // 10. reverse --> 对数组中的数据进行反转,返回反转后的数组, 改变原数组

    var arr = ['aac', 'cbb', 'ccc', 'ddd'];

    var arr1 = arr.reverse();

    console.log("反转后的数组:" + arr1 + ',  以前那个数组:' + arr);

    // 11. splice --> 从指定位置删除若干元素, 然后再从该位置添加若干元素, 结果返回被删除的元素

    //                第一个参数表示起始删除的位置, 第二个参数表明要删除元素的个数, 第三个参数则是要添加的元素

    var arr = ['a', 'v', 'b', 'c', 'd'];

    // var arr1 = arr.splice(1, 3);

    // console.log('删除后的数组 :' + arr);

    // console.log('删除返回的值 :' + arr1);

    var arr1 = arr.splice(1, 3, ['a','b','c']);

    console.log('删除后的数组 :' + arr);

    console.log('删除返回的值 :' + arr1);

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

推荐阅读更多精彩内容

  • 数组方法 下面开始介绍数组的方法,数组的方法有数组原型方法,也有从object对象继承来的方法,这里我们只介绍数组...
    祈求者阅读 370评论 0 2
  • *node下用express框架,实现一个简单的mvc *构建工具:gulp / babel / webpack ...
    韩娜爱吃辣_前端程序媛阅读 1,088评论 0 1
  • 由于最近都在freecodecamp上刷代码,运用了很多JavaScript数组的方法,因此做了一份关于JavaS...
    2bc5f46e925b阅读 1,972评论 0 16
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 3,830评论 0 6
  • 说是少女,其实已经年过四分之一百岁了,过了本命年之后,难免会有些生理和心理上的变化。本命年的时候认识了元元,我们是...
    飘扬的裙带菜阅读 120评论 0 1