一、改变原数组:
示例1:push()
<script>
//push()小练习 底层探究(看push()方法底层是如何写的)
var arr = [1, 2];
Array.prototype.push = function() {
for (var i = 0; i < arguments.length; i++) {
this[this.length] = arguments[i];
}
return this.length;
};
arr.push(8, 14, 48);
console.log(arr);
</script>
示例2:pop()
<script>
var arr = [1, 2];
// arr.pop(2); //注意:pop()里面不能传参,传参无效
arr.pop();
console.log(arr);
</script>
示例3:unshift()、shift()
<script>
//unshift()在数组前面添加元素;shift()在数组前面删除元素
var arr = [1, 2];
arr.unshift(0);
arr.unshift(-2, -5);
arr.shift();
console.log(arr);
</script>
示例4:reverse()
<script>
//reverse()逆转数组
var arr = [1, 2, 3];
arr.reverse();
console.log(arr);
</script>
示例5:splice()
<script>
//reverse()逆转数组
var arr = [1, 2, 3, 5];
//splice(从第几位开始,截取多少的长度,在切口处添加新的数据),结果返回截取后的"原数组"
// arr.splice(1, 2);
// arr.splice(1, 1, 0, 0, 0);
arr.splice(3, 0, 4);
arr.splice(-1, 1);
console.log(arr);
</script>
示例6:sort()
<script>
//sort() 在原数组的基础上进行排序
var arr = [1, -2, 4, 0, -9, 15];
//1.必须写两形参
//2.看返回值:当返回值为负数时,前面的数放在前面;当为整数时后面的数在前;为0则不动
arr.sort(function(a, b) {
// if (a > b) { //升序
// return 1;
// } else {
// return -1;
// }
return a - b; //升序
// return b - a; //降序
});
console.log(arr);
</script>
给定一个有序的数组使其乱序输出:
<script>
//给一个有序的数组使其乱序
var arr = [1, 2, 3, 4, 5, 6, 7];
arr.sort(function() {
return Math.random() - 0.5;
});
console.log(arr);
</script>
对象排序:
<script>
var obj = {
name: 'jack',
age: 17,
sex: 'male',
face: 'handsome'
};
var obj1 = {
name: 'marry',
age: 49,
sex: 'female',
face: 'amazing'
};
var obj2 = {
name: 'zhang',
age: 24,
sex: 'male',
face: 'handsome'
};
var arr = [obj, obj1, obj2];
arr.sort(function(a, b) {
// if (a.age > b.age) {
// return 1;
// } else {
// return -1;
// }
return a.age - b.age; //升序
});
console.log(arr);
</script>
按字符串长度排序:
<script>
var arr = ['ase', 'desddw', 'a', 'hjegfuyoef', 'cgyye', 'hewgdeouwyipuewfhuiewfyw', '', 'ufgwepuifyew8ofudsuhcuidtwydtsaoidfjeowi', 'ggiuqindwhydwu'];
arr.sort(function(a, b) {
return a.length - b.length;
});
console.log(arr);
</script>
按字节长度排序:
<script>
function retBytes(str) {
var num = str.length;
for (var i = 0; i < str.length; i++) {
if (str.charCodeAt[i] > 255) {
num++;
}
}
return num;
};
var arr = ['ase', 'desddw', 'a', '我爱祖国', 'cgyye', 'hepuewfhuiewfyw', '', '迪丽热巴', 'ggiuqiydwu'];
arr.sort(function(a, b) {
return retBytes(a) - retBytes(b);
});
console.log(arr);
</script>
二、不改变原数组:
示例1:concat()
<script>
//x contact(y);将y数组拼接到x数组的后面
var arr1 = [1, 2];
var arr2 = [3, 4];
console.log(arr1.concat(arr2));
</script>
示例2:toString()
<script>
//toString();将数组转换成字符串
var arr1 = [1, 2];
var newArr = arr1.toString();
console.log(newArr);
console.log(typeof newArr);
console.log(typeof arr1);
</script>
示例3:slice()
<script>
//slice(从该位开始截取,截取到该位);
var arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var newArr = arr1.slice(1, 5);
console.log(newArr);
var newArr1 = arr1.slice(1);
console.log(newArr1);
var newArr2 = arr1.slice(-5);
console.log(newArr2);
var newArr3 = arr1.slice();
console.log(newArr3);
</script>
示例4:join()
<script>
//join();以什么作为分隔符将数组里的元素进行分隔从而形成新的字符串
var arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var newArr = arr1.join("!");
console.log(newArr);
console.log(typeof newArr);
</script>
示例5:split()
<script>
//split();以某种方式将字符串拆分为数组
var arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var newArr = arr1.join("-");
console.log(newArr);
console.log(typeof newArr);
var newString = newArr.split("-");
console.log(newString);
</script>
合并字符串:
<script>
var str = 'alibaba';
var str1 = 'baidu';
var str2 = 'tencent';
var str3 = 'toutiao';
var str4 = 'wangyi';
var str5 = 'xiaowang';
var str = 'nv';
var arr = [str, str1, str2, str3, str4, str5];
console.log(arr.join(""));
</script>