js对象模拟数组
16lz
2021-11-21
排序完了不知道要返回数组还是对象,先这样吧
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>object</title>
</head>
<body>
<script>
function myArray() {
this.length = arguments.length;
this.arr = []
for (var i = 0; i < this.length; i++) {
this[i] = arguments[i];
this.arr[i] = arguments[i]; //也可以把数组转到一个单独的属性里去操作
}
this.sort = function (order) {
var a = this.arr[0];
var b = this.arr[1];
var desc = order(a, b) > 0 ? true : false;
for (var i=0;i<this.length;i++) {
for (var j = 0; j < this.length - 1 - i; j++) {
if (desc) {
if (this[j] < this[j + 1]) {
var min = this[j];
this[j] = this[j + 1];
this[j + 1] = min;
}
} else {
if (this[j] > this[j + 1]) {
var max = this[j];
this[j] = this[j + 1];
this[j + 1] = max;
}
}
}
}
return this;
}
this.reverse = function () {
var arrReversed = [];
var j = 0;
for (var i = this.length - 1; i >= 0; i--) {
arrReversed[j] = this[i];
j++;
}
return arrReversed;
}
this.max = function () {
var max = this[0];
for (var i = 1; i < this.length; i++) {
if (this[i] > max) {
max = this[i];
}
}
return max;
}
this.min = function () {
var min = this[0];
for (var i = 1; i < this.length; i++) {
if (this[i] < min) {
min = this[i]
}
}
return min;
}
}
var arrObj = new myArray(1, 3, 5, 7, 2, 4, 6, 8);
var sortedArr = arrObj.sort(function (a, b) {
return a - b;
})
console.log(sortedArr);
console.log(arrObj.reverse());
console.log(arrObj.max());
console.log(arrObj.min());
</script>
</body>
</html>
更多相关文章
- JavaScript 实现简单数组排序,翻转,取较大值和较小值
- md5加密与数组函数
- 商城实战项目
- 为什么说for...of是JS中的一颗宝石
- MongoDB 排序内存超过 32M 限制
- 剖析Elasticsearch的IndexSorting:一种查询性能优化利器
- 实现数组去重的 9 种高阶方法
- php多维数组创建及遍历
- json数据类型,安装MySQL