其他分享
首页 > 其他分享> > Object.keys()/Object.values()/Object.entries,将对象转换成某种数组

Object.keys()/Object.values()/Object.entries,将对象转换成某种数组

作者:互联网

Object.keys()

1.用法

Object.keys(参数)
参数可以为对象,数组,字符串
对象——返回可枚举属性的数组
数组——返回索引数组
字符串——返回索引数组

2.举例

返回可枚举属性组成的数组。
	eg1:操作对象
		let myself={
			name:'ting',
			age:18,
			hobby:'basketball'
		};
		Object.keys(myself);   //["name","age","hobby"]
		Object.keys(myself).forEach(key=>myself[key]); //可以据此遍历出每一个属性对应的值
	eg2:操作数组
		let myArr=["English","Spanish","Italian"];
		Object.keys(myArr);   //["0","1","2"]
	eg3:操作字符串
		let str="I love Programming";
		Object.keys(str); // ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17"]

Object.values()

1.用法

Object.key()是用来获取可枚举属性的,
对应的Object.values()用来获取这个可枚举属性对应的值。
Object.values(参数),返回一个数组,其元素是对象上找到的可枚举属性的值。
属性的顺序与通过手动循环所给出的顺序相同。

2.举例

	eg1:返回属性值
		let myself={
			name:'ting',
			age:18,
			hobby:'basketball'
		};
		Object.values(myself);  //["ting", 18, "basketball"]
	eg2:排序相关
		如果可枚举属性为数字或者可转换成数字的字符串组成
		值就会按照转换之后顺序输出,
		如果不可转换为数字,
		就会按照书写的顺序输出
		let sortValue={
			1:'a',
			3:'c',
			2:'b',
		}
		Object.values(sortValue); //["a", "b", "c"]
	eg3:遍历字符串
		let str="name";
		Object.value(str);  //["n", "a", "m", "e"]

Object.entries

1.用法

Object.entries(参数);
参数为对象——将每一组键值对以数组的形式展示
参数为数组——将每一组值和下标以数组的形式展示
参数为字符串——将每一个元素及其下标以数组形式展示
返回一个数组,成员是参数对象本身所有可枚举属性的键值对数组。
	eg1:参数为对象
		let obj={
			name:'dog',
			age:3
		}
		Object.entries(obj);  //[["name","dog"],["age",3]]

== 同样地,如果对象的键为数字形式时,也会排序后在输出,小前大后 ==

	eg2:参数为数组
		let arr=["my","name","is"];
		Object.entries(arr); //[["0", "my"],["1", "name"],["2", "is"]]
	eg3:数组中包含对象
	 let objArr=[{a:1},2,3];
	 Object.entries(objArr);// [[0,{a:1}],["1",2],["2",3]]
	eg4:字符串
		let str="my world!";
		Object.entries(str); //[["0", "m"],["1", "y"],["2", " "],["3", "w"], ["4", "o"], ["5", "r"], ["6", "l"], ["7", "d"], ["8", "!"]]
	eg5:将Object转化成Map
			    let myself={
      				name:'婷婷',
      				age:18,
   				 }
    			new Map(Object.entries(myself))  //Map(2) {"name" => "冯婷婷", "age" => 18}

It`s never too late to do the right thing!我们的明天一定是越来越明朗的,加油!

久病成良医。 发布了10 篇原创文章 · 获赞 2 · 访问量 2728 私信 关注

标签:myself,name,keys,Object,let,数组,entries,values
来源: https://blog.csdn.net/weixin_44593720/article/details/104000695