数组也是一种复杂的数据类型,里面存储的是一串数据(一系列有序的数据)
至于所谓有序:就是每一个数组元素都是对应每一个下标(下标从0开始)
常见的复杂数据类型
let arr = [];//字面量
let arr1 = new Array();//内置构造函数
//注意点:当Array()里面只有一个数据的时候,表示定义了数组的长度
//注意点2:当Array()里面有两个数据的时候,才表示数组的元素
lenght:长度的意思(当数组使用该属性的时候,表示获取数组的长度)
var arr = [1, 2, 3]
console.log(arr.length) // 3
数组的索引是从0开始的,一个下标皆对应这一个数组元素,一一匹配的原则!
let arr = [1, 2, 3];
//arr.push() ---里面书写需要推入的元素
let res = arr.push(4, "lala"); //可以推入一个或者多个元素!
console.log(arr); //[1, 2, 3, 4, "lala"]
console.log(res); //5
let arr = [1, 2, 3];
//arr.unshif() ---里面书写需要推入的元素
let res = arr.unshift(0, "xixi");
console.log(arr); //[0, "xixi", 1, 2, 3]
console.log(res); //5
let arr = [1, 2, 3];
//arr.pop() ---里面不需要参数
let res = arr.pop();
console.log(arr); //[1, 2]
console.log(res); //3
let arr = [1, 2, 3];
//arr.pop() ---里面不需要参数
let res = arr.pop(); //可以推入一个或者多个元素!
console.log(arr); //[2,3]
console.log(res); //1
let arr = [1, 2, 3, 4];
let res = arr.splice(1, 2);
console.log(arr); // [1, 4]
console.log(res); //[2, 3]
let arr = [1, 2, 3, 4];
let res = arr.splice(1, 2, "lala", "pink");
console.log(arr); // [1, "lala", "pink", 4]
console.log(res); //[2, 3]
let arr = [1, 2, 3];
let res = arr.reverse();
console.log(arr); //[3, 2, 1]
console.log(res); //[3, 2, 1]
let arr = [1, 33, 8, 5];
let res = arr.sort(function (a, b) {
return a - b;
});
console.log(arr); //[1, 5, 8, 33]
console.log(res); //[1, 5, 8, 33]
let arr = [1, 3, 5]
var arr1 = ['7', 'lala'];
// 合并arr 和 arr1
var res = arr.concat(arr1, ['a']) // 参数为数组
console.log(res);//[1, 3, 5, "7", "lala", "a"]
console.log(arr);//[1, 3, 5]
//需求:可以把一个元素,直接合并到数组arr之中!
let arr = [1, 3, 5]
let num = 9;
console.log(arr.concat(num)); //[1, 3, 5, 9]
let arr = [1, 4, 6, 7]
var res = arr.join('-')
console.log(arr); //[1, 4, 6, 7]
console.log(res); //1-4-6-7
let arr = [1, 3, 5]
var res = arr.indexOf(5)
console.log(arr); // [1, 3, 5]
console.log(res); //2 返回的是索引号
let arr = [1, 3, 5, 7, 9, 11];
let res = arr.slice(2, 4);
console.log(res); //[5, 7]
console.log(arr); // [1, 3, 5, 7, 9, 11]
let arr = ["app", "vue", "react", "jq"];
let res = arr.includes("vue");
let res1 = arr.includes("vue1");
console.log('res', res); // res true
console.log('res1', res1); // res1 false
console.log('res2', arr.includes("vue",1)); // res2 true
console.log('res3', arr.includes("vue",2)); // res3 false
let arr = [10,20,4,60,99];
let res = arr.find( item => {
return item >= 60;
})
console.log("res", res); // 60
let arr = [10,20,4,60,99,100];
let res = arr.findIndex( item => {
return item >= 60;
})
console.log("res", res); // 3
var str = ''
// 字面量定义字符串
var str = new String('') //通过内置构造函数定义字符串
// 字符串也有索引 也有length属性
// 字符串只可读( 只能查看数据), 不可写( 不能更改数据)
let str = "affgscxfdg"
console.log(str.charAt(0)); //a
let str = "affgscxfdg"
console.log(str.charCodeAt(3)); //0--a--97 根据索引号得到该字符的ASII码 3--g--103
let str = "affgscxfdg"
console.log(str.indexOf("g")); //a--0 根据字符返回索引号 g--3
let str = "affgscxfdg"
console.log(str.substring(1, 3)); //ff
console.log(str.substring(1, -4)); //a 就是-4变为0并且和1交互位置
let str = "affgscxfdg"
console.log(str.substr(1, 3)); //ffg
let str = "affgscxfdg"
console.log(str.slice(1, 3)); //ff
console.log(str.slice(1, -4)) //ffgsc -4+10=6 也就是1-6但是不包括6,于是截取了5个字符!
let str = "affgscxfdg"
console.log(str.split("")); //["a", "f", "f", "g", "s", "c", "x", "f", "d", "g"]
let str = "22aaccd-o-f.s1.txt";
let res = str.lastIndexOf(".");
console.log("res", res); // res 14
let res1 = str.substr(0, res);
console.log('res1', res1); // res1 22aaccd-o-f.s1