- 转换方法:toLocaleString()、toString()、valueOf()
其中toString()和valueOf()无论重写了谁,都会返回相同的值。数组会将每个值进行字符串形式的拼接,以逗号隔开。
var box = [‘小明‘, 28, ‘江苏‘, new Date()]; alert(typeof box); //object alert(typeof box.toString()); //string alert(typeof box.valueOf()); //object alert(typeof box.toLocaleString()); //string 本地格式区域字符串
- join()方法
默认情况下,数组字符串都会以逗号隔开。如果使用join()方法,则可以使用不同的分隔符来构建这个字符串。
var box = [‘小明‘, 28, ‘江苏‘]; alert(box.join(‘|‘)); //方法运行过后返回按|分割的字符串 弹出:小明|28|江苏 alert(box); //原数组没有任何变化,类型还是object 弹出:小明,28,江苏
- push()和pop()方法 (栈方法)
栈是一种数据结构(后进先出),也就是说最新添加的元素最早被移除。而栈中元素的插入(或叫推入)和移除(或叫弹出),只发生在一个位置——栈的顶部。ECMAScript为数组专门提供了push()和pop()方法。
push()方法可以接收任意数量的参数,把它们逐个添加到数组的末尾,并返回修改后数组的长度。而pop()方法则从数组末尾移除最后一个元素,减少数组的length值,然后返回移除的元素。
var box = [‘小明‘, 28, ‘盐城‘]; alert(box.push(‘计算机编程‘,‘江苏‘)); //给数组末尾添加了2个元素,并返回数组最新长度 alert(box); //返回最新数组元素 alert(box.pop()); //移除数组最后的元素,并且返回移除的元素 alert(box); //返回最新数组元素
- push()和shift()方法 (队列方法)
栈方法是后进先出,而列队方法就是先进先出。列队在数组的末端添加元素,从数组的前端移除元素。通过push()向数组末端添加一个元素,然后通过shift()方法从数组前端移除一个元素。
var box = [‘小明‘, 28, ‘盐城‘]; alert(box.push(‘计算机编程‘)); alert(box); alert(box.shift()); //移除数组开头的一个元素,并且返回这个元素 alert(box);
- unshift()方法
ECMAScript还为数组提供了一个unshift()方法,它和shift()方法的功能完全相反。unshift()方法为数组的前端添加一个元素。
var box = [‘小明‘, 28, ‘男‘]; alert(box.unshift(‘江苏‘)); //给数组前端添加一个元素,并且返回最新的长度 alert(box); //弹出:江苏,小明,28,男
- 排序方法 reverse()和sort()
reverse()逆向排序,sort()从大到小排序。
var box = [1,2,3,4,5]; alert( box.reverse()); //方法执行后返回一个逆序后的数组 alert( box); //原数组也被逆序了。 var box = [4,1,6,2,7,3,9]; alert(box.sort()); //从小到大排序 alert(box);
sort方法的默认排序在数字排序上有些问题,因为数字排序和数字字符串排序的算法是一样的。我们必须修改这一特征,修改的方式,就是给sort(参数)方法传递一个函数参数。这点可以参考手册说明。
<script type="text/javascript"> var arr = new Array(6) arr[0] = "10" arr[1] = "5" arr[2] = "40" arr[3] = "25" arr[4] = "1000" arr[5] = "1" document.write(arr + "<br />") //输出:10,5,40,25,1000,1 document.write(arr.sort()) //输出:1,10,1000,25,40,5 </script>
上面的代码是按照字母顺序进行排序,没有按照数值的大小对数字进行排序,要实现按数值顺序这一点,必须用一个排序函数:
function sortNumber(a,b){ return a-b; } var box = ["0","12","5","10","15"]; alert(box.sort(sortNumber)); //弹出:0,5,10,12,15 alert(box.reverse());
- contact()方法可以基于当前对象创建一个新数组。
var box = [‘小明‘, 28, ‘男‘]; var box2 = box.concat(‘计算机编程‘); alert(box2); //弹出:小明,28,男,计算机编程 alert(box) //弹出:小明,28,男
- slice()方法可以基于数组获取指定区域元素并创建一个新数组。
var box = [‘小明‘, 28, ‘男‘,‘计算机编程‘]; var box2 = box.slice(1);//从下标位置1开始选取至数组末尾 alert(box2); //弹出:28,男,计算机编程 var box = [‘小明‘, 28, ‘男‘,‘计算机编程‘,‘江苏‘]; var box2 = box.slice(1,3); //而是从第1个下标位置的元素取到第3个下标位置前的一个元素 alert(box2); //弹出:28,男
- splice()主要用途是向数组中插入元素。
//splice中的删除功能: var box = [‘小明‘, 28, ‘男‘,‘江苏‘,‘计算机编程‘]; var box2 = box.splice(0,2); //这里表示删除从index0开始的2个元素, alert(box2); //弹出:小明,28 alert(box); //弹出:男,江苏,计算机编程 //splice中的插入功能: var box = [‘小明‘, 28, ‘男‘]; var box2 = box.splice(0,0,‘江苏‘,‘计算机编程‘);//从index0前插入元素,0表示不删除 alert(box2); //弹出空白 alert(box); //弹出:江苏,计算机编程,小明,28,男 //splice中的替换功能: var box = [‘小明‘, 28, ‘男‘]; var box2 = box.splice(0,1,‘小新‘); //将删除位于 index 0 的元素,并添加一个新元素来替代被删除的元素: alert(box2) //弹出:小明 alert(box); //弹出:小新,28,男
时间: 2024-10-15 00:23:18