<script type="text/javascript">
var arr = ["孙悟空","猪八戒","沙和尚","唐僧","白骨精"];
var result = arr. slice(1,-2);
console.log(result);//["猪八戒", "沙和尚"]
var array = ['张三', '李四', '王五', '赵六'];
console.log(array);//["张三", "李四", "王五", "赵六"]
console.log(array. toString());//张三,李四,王五,赵六
/* join()方法用于把数组中的所有元素放入一个字符串。
元素是通过指定的分隔符进行分隔的*/
var array1 = ['三张', '四李', '五王', '六赵'];
console.log(array.join('/')); //张三/李四/王五/赵六
/*将字符串转换成Array对象(数组)
很熟悉的方法 */
var str = '霍丽丽,李四,王五,赵六';
var array2=str. split(',');
console.log(array2);// ["霍丽丽", "李四", "王五", "赵六"]
console.log(array2.toString());//霍丽丽,李四,王五,赵六
/*上面的例子如果使用空格分割呢?
下面的语句使用空格分割呢?有神马用处? */
var str1 = '张三李四王五赵六';
var array3=str1.split('');
console.log(str1);//张三李四王五赵六(原字符串不改变)
console.log(array3) ;//["张", "三", "李", "四", "王", "五", "赵", "六"]
console.log(array3.toString()); //张,三,李,四,王,五,赵,六
/* concat():在数组的末尾添加元素,并返回一个新的数组,原数组不变。
注意:和前边直接向数组中添加元素的区别: 前者操作的数组本身,
而后者是返回一个新的数组,原数组不变 */
var array4 = new Array('代可嘉,李四,王五,赵六');
var array5= array4.concat('田七', '王八');
console.log(array4);//["代可嘉,李四,王五,赵六"]
console.log(array5);// ["代可嘉,李四,王五,赵六", "田七", "王八"]
console.log(array4.toString()); // 代可嘉,李四,王五,赵六
console.log(array5.toString()); //代可嘉,李四,王五,赵六,田七,王八
/* slice()从数组中截取指定的元素,并返回新数组,原数组不变
截取从第2元素开始到最后一个元素结束*/
var array6 = new Array('张三','李四','王五','赵六');
var array7 = array6.slice(1,3);
var array8=array6.slice(1);
console.log(array7) ;//["李四", "王五"]
console.log(array8) ;//["李四", "王五", "赵六"]
/* shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined */
var a = [1,2,3,4,5];
var b = a.shift();
console.log(a);//a:[2,3,4,5] 元素组会会从头往后减少
console.log(b);//b:1
/* unshift:将参数添加到原数组开头,并返回数组的长度*/
var a = [1,2,3,4,5];
var b = a.unshift(-2,-1);
console.log(a); //a:[-2,-1,1,2,3,4,5]
console.log(b); //b:7
/*注:在IE6.0下测试返回值总为undefined,FF2.0下测试返回值为7,所以这个方法的返回值不可靠,需要用返回值时可用splice代替本方法来使用。 */
/* pop:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined */
var a = [1,2,3,4,5];
var b = a.pop();
console.log(a);//a:[1,2,3,4]
console.log(b);// b:5 //不用返回的话直接调用就可以了
/* push:将参数添加到原数组末尾,并返回数组的长度*/
var a = [1,2,3,4,5];
var b = a.push(6,7); //a:[1,2,3,4,5,6,7] b:7
/* concat:返回一个新数组,是将参数添加到原数组中构成的 */
var a = [1,2,3,4,5];
var b = a.concat(6,7); //a:[1,2,3,4,5] b:[1,2,3,4,5,6,7]
/* splice()方法:splice(start,deleteCount,val1,val2,...):从start位置开始删除deleteCount项,并从该位置起插入val1,val2,...
好用且简单
第二个参数为0时,不删除任何项*/
var array9 = new Array('李四', '张三', '赵六', '王五');
array9.splice(1, 0);
console.log(array9);//["李四", "张三", "赵六", "王五"]
/*第二个参数为1时,删除下标为第一个参数指定下标的元素 */
var array10 = new Array('李四', '张三', '赵六', '王五');
array10.splice(1, 1);
console.log(array10);//["李四", "赵六", "王五"] 删除了"张三"
/* 第二个参数为2时,
删除下标为第一个参数指定下标和第一个参数下标+1的下标的元素,
以下以此类推 */
var array11 = new Array('李四', '张三', '赵六', '王五');
array11.splice(1,2);
console.log(array11);//["李四", "王五"]
/*第二个参数为0时,在下标为1的位置新增一项,
原来下标为1的元素后移 */
var array12 = new Array('李四', '张三', '赵六', '王五');
array12.splice(1,0,'新添加项');
console.log(array12);//["李四", "新添加项", "张三", "赵六", "王五"]
/*第二个参数为1时,在下标为1的位置新增一项,原来下标为1的元素删除 */
var array13 = new Array('李四', '张三', '赵六', '王五');
array13.splice(1, 1, '新添加项');//["李四", "新添加项", "赵六", "王五"]
console.log(array13);
/*第二个参数为2时,在下标为1的位置新增一项,原来下标为1和下标为1+1的元素删除,
以下以此类推 */
var array14 = new Array('李四', '张三', '赵六', '王五');
array14.splice(1, 2, '新添加项');
console.log(array14);//["李四", "新添加项", "王五"]
/*删除2项,新增2项 */
var array15 = new Array('李四', '张三', '赵六', '王五');
array15.splice(1,2,'第一项','第二项');
console.log(array15);//["李四", "第一项", "第二项", "王五"]
/**
* 字符串处理函数
*/
function StringBuffer(){
var arr = new Array('李四', '张三', '赵六', '王五');
this.append = function(str){
arr[arr.length] = str; };
this.toString = function(){
return arr.join("");}; //把append进来的数组ping成一个字符串
}
</script>