const obj = {a:1,b:2,c:3,a:4,a:5} 这样一组数据怎么保证是从第一个开始 能获取一组数组为[a,b,c,a,a] 且能获取到其在对象中对应的value
时间: 2024-10-29 09:18:29 浏览: 18
node-extend-example:在 Node.js 中扩展对象的示例
在 JavaScript 中,处理这种重复 key 的情况有点复杂,因为标准的 `for...in` 遍历并不能保证返回 key 的添加顺序。不过,你可以通过手动跟踪 key 和 value,以及利用 `Set` 来辅助解决这个问题。以下是一个示例:
```javascript
const obj = {a:1, b:2, c:3, a:4, a:5};
const uniqueKeys = new Set();
const result = [];
for (let key in obj) {
if (!uniqueKeys.has(key)) {
result.push({ key, value: obj[key] });
uniqueKeys.add(key);
}
}
// 将对象的值排序,这里使用简单的数字比较,如果是字符串或其他类型,需自行处理
result.sort((a, b) => a.key - b.key);
console.log(result); // 结果可能是 [{key: "a", value: 1}, {key: "b", value: 2}, {key: "c", value: 3}, {key: "a", value: 4}, {key: "a", value: 5}]
```
这段代码首先创建了一个 `Set` 用于记录已经遍历过的 key,保证了每个 key 只会出现一次。然后将首次遇到的 key 和对应的 value 添加到结果数组中,最后对结果数组按 key 排序。
阅读全文