react 元组push到指定位置
1
// 定义一个数组等同的对象var array = ["Code", true ,"新元素1" ,"新元素2" ,-3] array.splice(2, 0, "item1", "item2"); #2 document.writeln( array ); // Code,true,item1,item2,新元素1,新元素2,-3
2 参考其他
// 定义一个数组等同的对象var array = ["Code", true ,"新元素1" ,"新元素2" ,-3];// 妙用删除个数为0,从而实现向数组中的指定位置插入新的元素 var removedArray4 = array.splice(2, 0, "item1", "item2"); document.writeln( removedArray4 ); // (空字符串) document.writeln( array ); // Code,true,item1,item2,新元素1,新元素2,-3 document.writeln( array.length ); // 7
js 数组的push方法,想必大家都知道是向数组末尾添加元素,但是有一个很关键的点需注意:
参照链接 https://cloud.tencent.com/developer/article/1093653?from=14588
返回值
当调用该方法时,新的 length
属性值将被返回。
var sports = ["soccer", "baseball"]; //定义元组 var total = sports.push("football", "swimming"); # console.log(sports); // ["soccer", "baseball", "football", "swimming"] console.log(total); // 4 数量
数组push之后返回的是length,而不是新的数组,如果不清楚这点,在使用过程中回遇到很大的坑。
顺带记一下其他几个数组的方法返回值:
pop()
pop()方法从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。 let a = [1, 2, 3]; a.length; // 3 a.pop(); // 3 console.log(a); // [1, 2] a.length; // 2 arr.pop() 返回值 从数组中删除的元素(当数组为空时返回undefined)。
shift
shift() 方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。 let a = [1, 2, 3]; let b = a.shift(); console.log(a); // [2, 3] console.log(b); // 1 返回值 从数组中删除的元素; undefined 如果数组为空。 arr.shift()
unshift
unshift() 方法将一个或多个元素添加到数组的开头,并返回新数组的长度。 let a = [1, 2, 3]; a.unshift(4, 5); console.log(a); // [4, 5, 1, 2, 3] arr.unshift(element1, ..., elementN) 参数列表 element1, ..., elementN 要添加到数组开头的元素。 返回值 当一个对象调用该方法时,返回其 length 属性值。
concat
concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。 var arr1 = ['a', 'b', 'c']; var arr2 = ['d', 'e', 'f']; var arr3 = arr1.concat(arr2); // arr3 is a new array [ "a", "b", "c", "d", "e", "f" ] var new_array = old_array.concat(value1[, value2[, ...[, valueN]]]) 参数 valueN 将数组和/或值连接成新数组。 返回值 新的 Array 实例。
splice()
splice()
方法通过删除现有元素和/或添加新元素来更改一个数组的内容。
返回值
由被删除的元素组成的一个数组。如果只删除了一个元素,则返回只包含一个元素的数组。如果没有删除元素,则返回空数组。
slice()
slice()
方法返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象,原始数组不会被修改。
返回值:
一个含有提取元素的新数组
总结:
开头和结尾添加都是返回数组的长度;
开头和结尾的删除都是返回删除的元素;
splice()返回被删除的元素;
concat返回新的数组;
slice返回提取的数组;