// 重写添加push方法
var arr = [1,2,3];
Array.prototype.push = function () {
for(var i = 0; i < arguments.length; i++) {
this[this.length] = arguments[i];
}
return this.length;
}
//重写删除pop方法 移除最后一位
Array.prototype.pop = function () {
this.length > 0 ? this.length = this.length - 1 : this.length = 0;
return this.length;
}
// 重写unshift方法从前面添加
Array.prototype.unshift = function () {
var L = arguments.length + this.length - 1;
for(var i = L; i > 0; i--) {
if(i > arguments.length - 1){
this[i] = this[i - arguments.length];
}else{
this[i] = arguments[i];
}
}
return this.length;
}
var arr1 = [1,3,6,2,8,7];
// sort函数
// 1.必须写两形参
// 2.看返回值 1)当返回值为负数时,那么前面的数放在前面
// 2)为正数,那么后面的数在前面
// 3)为0,不动
// 冒泡排序
arr1.sort(function (a, b) {
// return a > b ? -1 : +1;
return a - b; // 生序
// return b - a; //降序
})
// 给一个有序的数组,乱序
var arr2 = [1,2,3,4,5,6,7];
arr2.sort(function (a, b) {
return Math.random() - 0.5;
})
var xiaoliu = {
name : 'liu',
age : 18,
sex : 'male',
face : 'handsome'
}
var xiaoli = {
name : 'li',
age : 28,
sex : 'male',
face : 'amazing'
}
var xiaoqin = {
name : 'qin',
age : 22,
sex : 'male',
face : 'handsome'
}
// 对象按年龄属性来排序
var arr3 = [xiaoli, xiaoliu, xiaoqin];
arr3.sort(function(a, b) {
// return a.age - b.age;
return (a["age"] - b["age"]);
})
//按字符串长度排序
var arr4 = ['ac', 'bcd', 'cccc', 'dddd', 'asadasdafa', 'dsafdsfsafdsfds','s'];
arr4.sort(function(a, b){
return a.length - b.length;
})
//按字节长度
function retBrtys(str) {
var num = str.length;
for(var i = 0; i < num; i++){
if(str.charCodeAt(i) > 255){
num ++
}
}
return num;
}
var arr5 = ['ac哈哈', 'bcd', 'cccc哈哈哈哈哈', 'dddd', 'asadasdafa', 'dsafdsfsafdsfds','s'];
arr5.sort(function(a, b){
return retBrtys(a) - retBrtys(b);
})
// 不改变原数组的方法
// concat 连接两个数组,拼接完成后不会改变原数组
arr6 = [1,2,3,4,5];
arr7 = [6,7,8,9,10];
arr6.concat(arr7);
// slice() 1个参数 从该位一直截取
// 2个参数 从该位截取到该位(1,2)从第一位截取一位
// 0个参数 整个截取
// join 按给定的字符连接 返回string
// arr7.join("| ");
// split()
js中 数组相关函数
最新推荐文章于 2024-07-11 16:50:01 发布