javascript - 如何以正向和反向方式对数组进行排序Javascript
问题描述
我正在尝试使用数组。我创建了两个按钮PushUP
和PushDown
. PushUp
按钮将以正向和PushDown
反向方式对数组进行排序。我很努力,但没有弄清楚,但没有做到。为了获得以下输出,我应该写什么。此外,我将如何在单击任何Push
按钮之前显示此数据,然后相应地更改按钮的顺序。例如,最初我想显示 2 个带有数据的按钮。
例如,输出应该类似于单击以下按钮时的输出。
Original array:
1 xyz
2 abc, 123
3 asd
On clicking PushUp:
3 asd
1 xyz
2 abc, 123
On clicking PushDown:
1 xyz
2 abc, 123
3 asd
我的代码:
var details = [
{intro: "ABC"},
{due: " MON"},
{name: "XYZ", sn: "SN xxxxx"},
{lab: "Tuesday 4:30-6:30"}
];
function Push_Up(){
details.sort();
displayPUSH();
}
function displayPUSH() {
document.getElementById("up").innerHTML =
"<br>" +
"CSIT128" + " :" + details[0].intro + "<br><br>" +
"Assignment 5"+ ", " + details[1].due + "<br><br>" +
details[2].name + ", " + details[2].sn + "<br><br>" +
"Computer LAB" + " :" + details[3].lab + "<br><br>";
}
function Push_Down(){
var details_after ="";
for ( var i=0; i<details.length; i++ )
{
displayPUSH();
}
document.getElementById("down").innerHTML = details_after;
}
<button onClick="Push_Up()"> Push Up </button>
<br>
<div id="up">
</div>
<button onClick="Push_Down()"> Push Down </button>
<br>
<div id="down">
</div>
<br>
解决方案
如果您尝试进行循环移位,这是一种可能的方法:
let data = [
'foo',
'bar',
'baz'
];
function output() {
document.getElementById('results').innerHTML = data.map(item => `<li>${item}</li>`).join('');
}
document.getElementById('up').addEventListener('click', function() {
const first = data.shift();
data.push(first);
output();
});
document.getElementById('down').addEventListener('click', function() {
const last = data.pop();
data.unshift(last);
output();
});
output();
<button id="up">Push Up</button>
<button id="down">Push Down</button>
<ul id="results"></ul>
推荐阅读
- java - 如何在下面的代码中模拟遗留对象?
- bash - 在bash中将十六进制转换为十进制
- google-bigquery - 分区表中未分区的旧行
- node.js - 如何在 Mongoose 中对类别进行分组
- typescript - 如何避免在 Typescript 中分布多个泛型类型参数?
- ag-grid - AgGridReact:使用侧边栏时将水平滚动放在底部
- android - 在 Android 应用程序中将 geojson 文件添加到我的地图
- c# - C# Selenium Firefox 驱动程序设置 navigator.webdriver = false
- xml - bcp 命令未在格式文件中定义可空值
- centos - 旋转异常日志的 logrotate 问题