使用空白原型初始化对象很容易:Object.create(null)
。但是,数组不像对象那样有方便的Array.create
方法。那么,数组相当于Object.create
?
初始化关于结果数组的访问速度*的空白数组的最佳方法是什么?或者,所述空白数组中的访问速度*是否会慢于访问速度*定期[]
初始化数组?
非常感谢任何和所有建设性的回应。
*访问速度'是什么意思?属性是如何快速读取和写入数组的。
答案 0 :(得分:1)
没有理由不使用[]
来创建数组。您可以在技术上致电new Array()
,但它与[]
完全相同。
在幕后,Array
实际上只是一个Object
,其中数字作为键和一些特殊逻辑来确保键顺序(Object
技术上没有Object
Object.create(null)
print('Error! ' *20)
@RequestMapping(value = "yourUrl", method = RequestMethod.GET)
public ResponseEntity<List<Exercicio>> listarExercicios(YourObject object) {
object = restTemplate.getForObject("http://gturnquist-quoters.cfapps.io/api/random", YourObject.class);
return ResponseEntity.status(HttpStatus.OK).body(object);
}
1}}通常会保持它的关键顺序,这不是保证。)
虽然技术上可以使用{{1}}来创建自己的Array实现,但它的性能远低于内置阵列,因为大多数引擎都会有特殊代码来提高其性能。
答案 1 :(得分:1)
使用空白(或任何其他自定义)原型创建数组毫无意义。 Object.create(null)
的用例是map 1 ,其中没有原型干扰属性,但我们没有数组及其整数索引的问题。
如果你坚持这样做,
Object.setPrototypeOf([], null)
将实现此目的,但会创建一个非常奇怪的对象,它将破坏许多需要数组具有某些方法的代码。
或者,所述空白数组中的属性访问速度是否会慢于常规初始化数组的属性?
是的,很可能 - 奇怪的对象总是很有可能不被优化以及标准对象。无论如何,它不会更快。
1:当然,他们现在被弃用,而不是true Map
s。