ES6 Map :
const map = new Map();
map.set('first', ['1', '2']);
map.set('second', ['abc', 'def']);
map.set('_third', []);
map.set(')(*', []);
map.set('he__e', []);
console.log(map);
Map对象按插入顺序迭代其元素。
然后我在下面对地图进行了排序
var mapAsc = new Map([...map.entries()].sort());
console.log(mapAsc)
但它输出我
0: {")(*" => Array(0)}
1: {"_third" => Array(0)}
2: {"first" => Array(2)}
3: {"he__e" => Array(0)}
4: {"second" => Array(2)}
因此'3'索引具有特殊字符init吗?我希望输出为
0: {")(*" => Array(0)}
1: {"_third" => Array(0)}
2: {"he__e" => Array(0)}
3: {"first" => Array(2)}
4: {"second" => Array(2)}
答案 0 :(得分:0)
var jiveTags = new Map();
我在这里复制我的对象的示例数据:
jiveTags = {
dev: {
tagName: "dev",
contentID: Array(7),
contentTypes: Array(2),
tagURL: Array(1),
occurrences: 7
}
}
//
var sortJiveTags = new Map();
for (var tagValue in jiveTags) {
for (var i = 0; i < tagValue.length; i++) {
if (/[`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi.test(tagValue.charAt(i))) {
sortJiveTags[tagValue] = jiveTags[tagValue];
}
}
}// 0(n2) order of n2
一旦我将所有特殊字符键复制到另一个Map对象中,然后继续并通过以下循环复制其他键。
for (var tagValue in jiveTags) {
if (jiveTags[tagValue] !== sortJiveTags[tagValue]) {
sortJiveTags[tagValue] = jiveTags[tagValue];
}
}