Javascript 数组中的对象值

Javascript 数组中的对象值,javascript,Javascript,我有一个这样的物体: obj = [{x:150, y:260},{x:160, y:545},{x:478, y:858},{x:125, y:560}] 我想要一个这样的数组: array = [150,260,160,545,478,858,125,560] 如何操作?在ES6中,您可以使用和实现以下方法: const collection=[{x:150,y:260},{x:160,y:545},{x:478,y:858},{x:125,y:560}] const arr=coll

我有一个这样的物体:

obj = [{x:150, y:260},{x:160, y:545},{x:478, y:858},{x:125, y:560}]
我想要一个这样的数组:

array = [150,260,160,545,478,858,125,560]

如何操作?

在ES6中,您可以使用和实现以下方法:

const collection=[{x:150,y:260},{x:160,y:545},{x:478,y:858},{x:125,y:560}] const arr=collection.reduceac,{x,y}=>[…acc,x,y],]
console.logarr在ES6中,可以使用and和实现以下方法:

const collection=[{x:150,y:260},{x:160,y:545},{x:478,y:858},{x:125,y:560}] const arr=collection.reduceac,{x,y}=>[…acc,x,y],] console.logarr使用reduce在一次迭代中实现。否则,您可以使用map和flat或其他许多工具,如flatMap

与map+flat或flatMap不同,reduce只迭代原始数组一次。 这在大多数情况下可能是不相关的,除非要迭代的数组有点大

const obj=[{x:150,y:260},{x:160,y:545},{x:478,y:858},{x:125,y:560}]; 常量数组=obj.reduceac,next=>{ acc.push…Object.valuesnext; 返回acc; }, []; console.logarray 使用reduce在一次迭代中实现它。否则,您可以使用map和flat或其他许多工具,如flatMap

与map+flat或flatMap不同,reduce只迭代原始数组一次。 这在大多数情况下可能是不相关的,除非要迭代的数组有点大

const obj=[{x:150,y:260},{x:160,y:545},{x:478,y:858},{x:125,y:560}]; 常量数组=obj.reduceac,next=>{ acc.push…Object.valuesnext; 返回acc; }, []; console.logarray 使用

const obj=[{x:150,y:260},{x:160,y:545},{x:478,y:858},{x:125,y:560}] const res=obj.flatMapObject.values console.logres使用

const obj=[{x:150,y:260},{x:160,y:545},{x:478,y:858},{x:125,y:560}] const res=obj.flatMapObject.values console.logres试试这个:

[{x:150, y:260},{x:160, y:545},{x:478, y:858},{x:125, y:560}].flatMap(obj => [obj.x,obj.y])
试试这个:

[{x:150, y:260},{x:160, y:545},{x:478, y:858},{x:125, y:560}].flatMap(obj => [obj.x,obj.y])

您可以使用Array.prototype.reduce

const obj=[{x:150,y:260},{x:160,y:545},{x:478,y:858},{x:125,y:560}] const arr=obj.reduceacc,{x,y}=>acc.concatx,y,[]
document.write`arr=[${arr.join}]`您可以使用Array.prototype.reduce

const obj=[{x:150,y:260},{x:160,y:545},{x:478,y:858},{x:125,y:560}] const arr=obj.reduceacc,{x,y}=>acc.concatx,y,[]
document.write`arr=[${arr.join}]`迭代数组并将值连接到新的公共数组中

const obj=[{x:150,y:260},{x:160,y:545},{x:478,y:858},{x:125,y:560}]; 设arr=[]; obj.forEachfunctionitem{ arr=arr.concatObject.valuesitem; }
console.logarr迭代数组并将值连接到新的公共数组中

const obj=[{x:150,y:260},{x:160,y:545},{x:478,y:858},{x:125,y:560}]; 设arr=[]; obj.forEachfunctionitem{ arr=arr.concatObject.valuesitem; }
console.Logarrhh,没想到concat。使用push和返回相同的数组会有什么相关的区别吗?这将是一个有趣的场景。@briosheje可能在某些情况下.push的内存使用量较小,但使用.concat则较短,因为它返回结果数组。您介意将此方法更改为更通用的方法,以考虑未知的键值对。哈,没有想到concat。使用push和返回相同的数组会有什么相关的区别吗?这将是一个有趣的场景。@briosheje可能在某些情况下.push的内存使用量较小,但使用.concat则较短,因为它返回结果数组。您介意将此方法更改为考虑未知键值对的更通用的方法吗?x呢?x呢?例如。。。[{x:150,y:260},{x:160,y:545}].reducecollector,item=>collector.concatObject.valuesitem,[]。。。利用和例如。。。[{x:150,y:260},{x:160,y:545}].reducecollector,item=>collector.concatObject.valuesitem,[]。。。利用和。flatMapObject.values已足够。。。不需要额外的回调。flatMapObject.values已足够。。。不需要额外的回调。