js对象与数组相互转化的快捷⽅法Object.keys()、
Object.values()。。。
Object.keys()
Object.keys返回⼀个所有元素为字符串的数组,其元素来⾃于从给定的object上⾯可直接枚举的属性。这些属性的顺序与⼿动遍历该对象属性时的⼀致。
例如:
let obj = {
name: 'haha',
age: 20,
showName: function () {}
}
Object.keys(obj) //['name','age','showName']
处理数组时,返回数组各元素的索引值:
let arr = ['a', 'b', 'c'];
Object.keys(arr); // ['0', '1', '2']
let brr = [1, 3, 4];
Object.keys(brr); // ['0', '1', '2']
可⾃动排序:
let arr = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.keys(arr)); // console: ['2', '7', '100']
组合⽤法:
let obj = {
name: 'haha',
age: 20,
}
Object.keys(obj).map((val, index)=>{js逗号分割的字符串转数组
obj[val] // 可以针对obj的不同属性做不同处理
})
Object.values()
Object.values()⽅法返回⼀个给定对象⾃⾝的所有可枚举属性值的数组,值的顺序与使⽤in循环的顺序相同 ( 区别在于 for-in 循环枚举原型链中的属性 )。
例如:
let obj = {
name: 'haha',
age: 20,
showName: function () {}
}
Object.values(obj) //['haha','20', f]
let brr = [1, 3, 4];
Object.values(brr); // [1, 3, 4]
排序:
let an_obj = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.values(an_obj)); // ['b', 'c', 'a']
字符串:
console.log(Object.values('haha')); // ['h', 'a', 'h', 'a']
const obj = { foo: 'bar', baz: 42 };
console.ies(obj)); // [ ['foo', 'bar'], ['baz', 42] ]
const anObj = { 100: 'a', 2: 'b', 7: 'c' };
console.ies(anObj)); // [ ['2', 'b'], ['7', 'c'], ['100', 'a'] ]
⾮对象会被强制转为对象:
console.ies('foo')); // [ ['0', 'f'], ['1', 'o'], ['2', 'o'] ]
更优雅的遍历对象键值:
const obj = { a: 5, b: 7, c: 9 };
for (const [key, value] ies(obj)) {
console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"
}
// 或者
console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"
});
Object.fromEntries()
Object.fromEntries() 把键值对列表转换为⼀个对象。改⽅法为ES10⽅法, Chrome不⽀持const arr = [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ];
const obj = Object.fromEntries(arr);
console.log(obj); // { 0: "a", 1: "b", 2: "c" }
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论