JS数据结构 数据属性和方法

数组和字符串相互转换: join() 和split()----split(:将字符串转为数组,传入参数指明以什么作为分隔符let str = "Hello";let arr = str.split("");console.log(arr);//[ 'H', 'e', 'l', 'l', 'o' ]let arr2 = str.split("l");

console.log(arr2);//[ 'He', '', 'o' ]-------join():将数组转为字符串,可以传入分隔符作为参数let arr = [1,2,3];let str = arr.join("");console.log(str);//123let str2 = arr.join(",");console.log(str2);//1,2,3

数组相关方法:

splice():这个方法非常的厉害,可以实现对数组的3种类型的操作:删除,插入和替换,相当于是增删改操作都可以用这个方法来实现。删除:可以删除任意数量的元素,只需要指定2个参数:要参数的第一项位 置和要删除的项数。let arr = [1,2,3,4,5,6,7,8,9,10];//从下标为3的元素开始删除,删除5个元素/ /将删除的元素返回给i let i = arr.splice(3,5);
console.log(i);//[ 4, 5, 6, 7, 8 ]
console.log(arr);//[ 1, 2, 3, 9, 10 ]插入:可以向任意位置插入任意数量的元素。只需要提供3个参数:起始位置,0(要 删除的项目),要插入的项目。let arr = [1,2,3,4,5,6,7,8,9,10];//从下标为3的元素之前开始插入let i = arr.splice(3,0,"red","blue");
console.log(i);//[]
console.log(arr);
//[ 1, 2, 3, 'red', 'blue', 4, 5, 6, 7, 8, 9, 10 ]替换:替换的原理在于插入的时候同时进行删除,这样就实现了替换功能let arr = [1,2,3,4,5,6,7,8,9,10];//从下标为3的元素之前开始插入//插入多少,刚好就删除多少 let i = arr.splice(3,2,"red","blue");
console.log(i);//[ 4, 5 ]
console.log(arr);
//[ 1, 2, 3, 'red', 'blue', 6, 7, 8, 9, 10 ]

slice(:该方法可以接收一个或者两个参数,代表返回项的起始和结束位置。一个参数:那就代表起始位置,返回从指定的起始位置到数组末尾的所有项目两个参数:那就代表从指定的起始位置到指定的末尾位置之间的项,但是不包括结束位置的项注意: slice()方 法不会影响原始数组let arr = [1,2,3,4,5,6,7,8,9,10];
//一个参数݇
let i = arr.slice(3);
console.log(i);//[ 4, 5, 6, 7, 8, 9, 10 ]
console.log(arr);//[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
//两个参数
let j = arr.slice(2,6);
console.log(j);//[ 3, 4, 5, 6 ]
console.log(arr);//[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]如果传入的是负数,则用数组长度加上该数来确定相应的位置let arr = [1,2,3,4,5,6,7,8,9,10];
//一个参数
let i = arr.slice(-3);//等价于slice(7)
console.log(i);//[ 8, 9, 10 ]
//两个参数
let j = arr.slice(-6,-2);//等价于slice(4,8)
console.log(j);//[ 5, 6, 7, 8 ]
//不满住条件返回空数组
let k = arr.slice(-2,-6);//等价于slice(8,4)
console.log(k);//[]

concat():该方法是先创建当前数组的一个副本,然后将接收到的参数添加到副本的末尾,最后返回新构建的数组,而原本的数组不会变化。let arr = [1,2,3];
let arr2 = arr.concat("red","blue");
console.log(arr);//[ 1, 2, 3 ]
console.log(arr2);//[ 1, 2, 3, 'red', 'blue' ]

删除方法:

ECMAScript中专门]提供了push0和pop0方法,用来实现类似栈的行为。let arr = [];
let i = arr.push("red","blue");
console.log(arr);//[ 'red', 'blue' ]
console.log(i);//2
let j = arr.pop();
console.log(arr);//[ 'red' ]
console.log(j);//blue 注意push(方法推入元素的时候是从右往左边推入的,如下:let arr = [];
arr.push("red","blue","pink");
console.log(arr);在ECMAScript中提供了shift()方法, 该方法可以去除数组中第一个元素并且返回该元素。利用shift(和push0方法就可以实现从右往左的队列//从右往左的队列
let arr = [];
arr.push("red","green","pink");
let item = arr.shift();
console.log(item);//red
console.log(arr);//[ 'green', 'pink' ]如果要实现从左往右的队列,可以使用unshift(方 法和pop0方法的配合。unshift(方 法的作用是在数组开头推入一个元素//从左往右的队列
let arr = [];
arr.unshift("red","green","pink");
let item = arr.pop();
console.log(item);//pink
console.log(arr);//[ 'red', 'green' ]---------------push()和pop()可以算是- -组方法,作用分别是在数组尾部推入和弹出元素。unshift()和shift(可以算是-组方法,作用分别是在数组头部推入和弹出元素。推入的时候可以一次性推入多个元素,返回的是新数组的长度。弹出的时候- -次只能弹出一个元素,返回的是弹出的那个元素

数组相关属性:

length:返回数组元素的个数let arr = [1,2,3,4,5];
console.log(arr.length);//5 我们利用此属性,可以快速的清空数组,这种方法比使用重新赋值的效率要高些,如下:let arr = [1,2,3,4,5];
arr.length = 0;
console.log(arr);//[]其实我们使用length属性就是可以随意的对数组的长度进行操控let arr = [1,2,3,4,5];
arr.length = 3;
console.log(arr);//[1,2,3]

 

posted on 2019-08-23 15:45  dazhongma233  阅读(263)  评论(0编辑  收藏  举报