首页 » Web前端 » phparray转obj技巧_JS数组和对象互相转换方法实用

phparray转obj技巧_JS数组和对象互相转换方法实用

访客 2024-11-22 0

扫一扫用手机浏览

文章目录 [+]

constarr=['one','two','three'];constobj={...arr};console.log(obj);//{0:'one',1:'tow',2:'three'}Objcet.assign(target, ...sources)

将所有可列举属性的值从一个或多个源工具分配到目标工具

参数: target:目标工具、...sources:源工具

phparray转obj技巧_JS数组和对象互相转换方法实用

返回值:目标工具

phparray转obj技巧_JS数组和对象互相转换方法实用
(图片来自网络侵删)

constarr=['one','two','three'];constobj=Object.assign({},arr);console.log(obj);//{0:'one',1:'tow',2:'three'}Object.fromEntries(iterable)

把键值对转换为一个工具。

参数:类似Array、Map

返回值:由该迭代工具条款供应对应属性的新工具

当我们碰着如下的构造时我们可以很轻松的将这个数组转换为工具

constarr=[['a',1],['b',2],['c',3]];constobj=Object.fromEntries(arr);console.log(obj);//{a:1,b:2,c:3}forEach

constarr=[1,2,3,4,5];letobj={};arr.forEach((item,index)=>{obj[index]=item;})console.log(obj);//{0:1,1:2,2:3,3:4,4:5}工具转数组Object.entries(obj)

把一个键值对转换为数组

参数: 可以返回其自身可列举属性的键值对的工具

返回值:返回一个其自身可列举属性的键值对数组

当我们碰着如下的构造时我们可以很轻松的将这个工具转换为数组

constobj={a:1,b:2,c:3};constarr=Object.entries(obj);console.log(arr);//[['a',1],['b',2],['c',3]]Object.keys(obj)

由给定的工具自身可列举的属性组成的数组

参数:工具

返回值:给定工具的属性组成的字符串数组

常日汇合营一些数组的方法利用,如下

constobj={a:1,b:2,c:3};constarr=Object.keys(obj).map(item=>obj[item]);console.log(arr);//[1,2,3];也可以得到上面那样的结果constarr=Object.keys(obj).map(item=>[item,lobj[item]]);console.log(arr);//[['a',1],['b',2],['c',3]]Object.values(obj)

由给定的工具自身可列举的属性值组成的数组

参数:工具

返回值:给定工具的属性值组成的字符串数组

constobj={a:1,b:2,c:3};constarr=Object.values(obj);console.log(arr);//[1,2,3];Array.from(array, fn, this)

从一个类似数组工具或可迭代工具创建一个新的,浅拷贝的数组实例。

参数:

array:要变换成数组的为数组工具或可迭代工具 fn: 指定了该参数,新数组中的每个元素都会实行该回调函数 this: 实行回调函数时的this工具

返回值:一个新的数组实例

先来说说什么是类似数组:便是含有length和索引属性的工具,如下便是一个大略的类似数组工具

constobj={0:'name',1:'age',2:'sex',3:'height'length:3,}

把稳:类似数组工具的length的值,决定了返回数组的长度

什么是可迭代工具:Array、Set、Map和字符串都是可迭代工具,更直接的是在掌握台上看看当前的工具的原型链上是否有 Symbol的方法 ,看看下面通过天生器创建的可迭代工具

constobj={0:'name',1:'age',2:'sex',3:'height',}functioncreateIterator(obj){for(letvalueinobj){yieldobj[value];}}letiterator=createIterator(obj);

好的,我们来试试用Array.from创建一个数组吧。

类似数组工具constobj={0:'name',1:'age',2:'sex',3:'height',length:3,}constarr=Array.from(obj);console.log(arr);//['name','age','sex'];输出3个是由于上面说的length的长度决定了数组的长度可迭代工具constobj2={0:'name',1:'age',2:'sex',3:'height'}functioncreateIterator(obj){for(letvalueinobj){yieldobj[value];}}letiterator=createIterator(obj);constarr2=Arry.from(iterator);console.log(arr2);//['name','age','sex','height'];

标签:

相关文章