我有一个 JS 对象如下:
var obj = {"00:11:22:33:44:55" : "AddressB", "66:77:88:99:AA:BB" : "AddressA", "55:44:33:22:11:00" : "AddressC", "AA:BB:CC:DD:EE:FF" : "AddressD"};
如下代码通过key按字母顺序排序:
sorted = Object.keys(obj)
.sort()
.reduce(function (accSort, keySort)
{
accSort[keySort] = obj[keySort];
return accSort;
}, {});
console.log(sorted);
产生输出:
<块引用>{"00:11:22:33:44:55": "地址B", "55:44:33:22:11:00": "地址C", "66:77:88:99:AA :BB" : "地址 A", "AA:BB:CC:DD:EE:FF" : "地址 D"}
如何按值按字母顺序对对象进行排序,以便输出:
<块引用>{"66:77:88:99:AA:BB": "地址 A", "00:11:22:33:44:55": "地址 B", "55:44:33:22:11 :00" : "地址C", "AA:BB:CC:DD:EE:FF" : "地址D" }
答案 0 :(得分:7)
您需要先按 keys
的 values
排序,然后使用 .reduce
创建结果有序对象:
const obj = {
"00:11:22:33:44:55": "AddressB",
"66:77:88:99:AA:BB": "AddressA",
"55:44:33:22:11:00": "AddressC",
"AA:BB:CC:DD:EE:FF": "AddressD"
};
const sorted = Object.keys(obj).sort((a,b) => obj[a].localeCompare(obj[b]))
.reduce((acc,key) => { acc[key] = obj[key]; return acc; }, {});
console.log(sorted);
答案 1 :(得分:3)
使用 provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
datafile = "F:\Test Database\Database.accdb"
conString = provider & datafile
myConnection.ConnectionString = conString
myConnection.Open()
Dim str As String
str = "Insert into TABLA([LABELS]) Values (?)"
Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
'cmd.Parameters.Add(New OleDbParameter("Panel", CType(Textbox1.Text, String)))
Select Case panelCount
Case 1
cmd.Parameters.Add("LABELS", CType(TextBox1.Text, String)).Value = "?".Rows(0).Cells(1).Value.ToString()
Case 2
cmd.Parameters.Add("LABELS", CType(TextBox1.Text, String)).Value = "?".Rows(0).Cells(2).Value.ToString()
End Select
Try
cmd.ExecuteNonQuery()
cmd.Dispose()
myConnection.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
myConnection.Close()
获取键和值的二维数组。按值对其进行排序,然后使用 Object.entries()
创建新对象。
reduce()