JS,对象值转数组的方法
我的需求是将对象的全部值,转数组,即不要key了,具体见代码。我通过for in已经实现了需求。
但感觉这样写很冗余,不优雅。
我不知道对象是否可以使用map等方式实现这个需求。
怎样写最简洁?
请各位大佬交流、指正,感谢。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 需求是将对象的全部值转为数组,即不要key了。
const obj = {
name: '唐伯虎',
age: '17',
phone: '168'
},
arr = [];
for (let key in obj) {
arr.push(obj)
}
console.log('arr', arr)
// ['唐伯虎', '17', '168']
</script>
</body>
</html> 使用Object.values 即可const obj1 = { foo: 'bar', baz: 42 }
console.log(Object.values(obj1)) // ['bar', 42]
const obj2 = { 0: 'a', 1: 'b', 2: 'c' }
console.log(Object.values(obj2)) // ['a', 'b', 'c'] Object.values() 方法返回一个给定对象自身的所有可枚举属性值的数组,值的顺序与使用 for...in 循环的顺序相同(区别在于 for-in 循环枚举原型链中的属性)。来自MDN 本帖最后由 Takitooru 于 2022-10-15 23:37 编辑
map方法
```
const obj = {
name: '唐伯虎',
age: '17',
phone: '168'
}
//方式1
console.log( Object.keys(obj).map(function(index, item) { return obj }) );
//['唐伯虎', '17', '168']
//方式2
console.log( Object.keys(obj).map(function(i) { return obj }) );
//['唐伯虎', '17', '168']
``` map就可以了 ,唐伯虎才168不相信,至少186吧,单位cm
页:
[1]