javaScript的数组

js中没有数组类型 js 中数组是以内置对象的形式存在


数组定义01

var attr = new Array('sunziheng','jack','jim','lili');
console.log(typeof attr); // object
console.log(attr);
// 数组的取值 点(不能操控数值)和 []
console.log(attr[0])

var attr02 = new Array()  // 空数组
var attr03 = new Array(10) // 如果数组内只要一个参数 而且是数值 之表明长度

数组定义02

var arr = ['11','22','33']
console.log(arr);
// 获取数组的长度 有几个单元
console.log(attr.length)


数组的遍历

// 数组的遍历
for (var i = 0;i <attr.length; i++) {
console.log(attr[i]);
}

forEach() 遍历数组

/*
* forEach(function(value,index,arrSelf){
*
* value 指向当前元素的值
* index 指向当前元素的索引
* arrSelf 指向当前数组本身
*
* })
*
* */
attr.forEach(function (a,b,c) {
console.log(a);
console.log(b);
console.log(c);
})


常用数组函数

/*
* 定义数组的方式:
* 1.使用new Array()
* 2. 使用 [] 的方式定义数组
*
* */

// 定义数组
var arr01 = ['sunziheng01','sunzieheng02','sunziheng03','sunziheng04'];
// indexOf()  正向查找数组单元 有查询的结果返回第一个对应的索引 不存在返回-1
var res = arr01.indexOf("sunziheng03");
console.log(res);
// lastIndexOf() 反向查找 不存在就返回 -1
var lastres = arr01.lastIndexOf('sunziheng03');
console.log(lastres);

// 数组的拼接
var a = [1,2,3,4]
var b = [5,6,7,8]
var c = arr01.concat(a);
var d = arr01.concat(a,b);
console.log(c);
console.log(arr01); // 凭借的和其没有关系

// join() 将数组的单元进行连接 返回字符串
var atrr02 = ['jim','lili','jack','jim02']
var atrr03 = arr01.join('@');
console.log(atrr03);
console.log(typeof atrr03);  // string

// reverse() 反转
var arr04= atrr02.reverse(); // 反转后原数组改变
console.log(arr04);
console.log(atrr02);

// 弹出(删除)最后一个元素
var arr05 = atrr02.pop();
console.log(arr05);
console.log(atrr02);
// 弹出(删除) 数组的第一个元素
var arr06 = atrr02.shift();
console.log(arr06);
console.log(atrr02);

// 数组的插入
// push() 从数组尾部压入
// unshift() 从数组的头部插入
atrr08 = ['22','33']
var arr09 = atrr08.push('44');
console.log(atrr08);
var arr10 = atrr08.unshift('11');
var arr11 = atrr08.unshift(arr06);
var  arr12 = atrr08.unshift(arr05);
console.log(atrr08);

//slice()[要前不要后) 数组元素的截取 不会影响原数组
var arr = ['道剑','天迹','地冥','人觉','君奉天'];
var res = arr.slice(1); // 1,到最后
var res02 = arr.slice(2,4); // [2,4)
var res03 = arr.slice(-2); //
var res04 = arr.slice(-3,-2);
console.log(res);
console.log(res02);
console.log(res03);
console.log(res04);

// splice() 截取 影响原数组
var arr02  = ['11','22','33','44','55','66','77','88'];

// var res = arr02.splice(1);
// console.log(res);
// var res = arr02.splice(3,2) // 位置3开始截取2个
var res = arr02.splice(1,3,'sunziheng','sunziheng02'); // 截取并插入
console.log(res);
console.log(arr02);

// 判断是否是数组
var arr03 = [];
var res = Array.isArray(arr03);
console.log(res);

// toString() 将对象转为字符串格式
var obj = {
    uname:'sunziheng',
    age:1000
}

var objStr = obj.toString();
console.log(objStr);
console.log(typeof objStr);  // 没有太大作用

// 数组元素的toString();
var arr = [1,2,3,4];
var newStr = arr.toString();
console.log(newStr);
console.log(typeof newStr);

/*  sort() 对数组元素进行排序

*     sort() 设置数组的单元以升序进行排列
*     系统函数 进行数组单元的排序
*     需要的就会说传入一个进行比较的回调函数
* */
var arr = [100,90,80,101,40,50];

var res = arr.sort(function (a,b) {

    // 正序

// if (a > b) {
// return 1;
// } else if (a < b) {
// return -1;
// } else {
// return 0;
// }
//
// return a - b; // 正序
return b - a; // 倒序
})
console.log(res);

/*
自定义数组排序函数 == 冒泡排序
规则:
每次在此比较时选取当前数组中最大的元素 放到数组的末尾
将相邻两个位置的值进行比较 如果该前面的值 > 后面的值 交换两者位置

  • */

    var arr = [100,30,20,50,70,80];
    for (var i = 0;i < arr.length - 1;i++) {

    if (arr[i] > arr[i + 1]) {
        // 交换位置 此时需要引入第三个变量
        var tmp = arr[i];
        arr[i] = arr[i+1];
        arr[i+1] = tmp;

    }
}
console.log(arr);

for (var i = 0; i < arr.length - 1 -1;i++) {
    if (arr[i] > arr[i + 1]) {
        var tmp = arr[i];
        arr[i] = arr[i + 1];
        arr[i+1] = tmp;
    }
}
console.log(arr);
console.log(arr.reverse());
console.log(arr.max);

</script>

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

推荐阅读更多精彩内容