基本上我有一个对象数组,例如
var array = [{x: 10, y: 5, r: 10, ...} ]
对象中还有更多的字段,但是为了简洁起见,这里是将字段分离到数组中的方法:
var x = array.map(obj => obj.x);
var y = array.map(obj => obj.y);
// and so on for each field
功能可以实现,但随着字段数量和数组大小的增长,该方法看起来非常低效,因为它会多次扫描数组。我可以使用标准循环,但在这种情况下,我更喜欢使用map(),因为我认为它更易读。 是否可以从map中返回多个值? 我认为应该这样:
var [x, y] = array.map(obj => [obj.x, obj.y]); // should output two arrays
或者任何类似于可读性的东西(在我看来,减少会更不易读)。
- 我注意到一些更新的JavaScript函数,例如
array.entries()
,它返回一个迭代器对象。我如何实现这样的函数?