例如,当使用2D坐标列表或RGB值列表时,有时我需要一个列表模型来存储许多具有相同结构的不同元素。
以RGB值示例为例,我有两种方法将每个元素存储在数组中:
// using small Array
var arrayOfArray = [[0, 0, 0], [110, 120, 130], ...]
// using Object
var arrayOfObject = [{r: 0, g: 0, b: 0}, {r: 110, g: 120, b: 130}, ...]
定义了数组之后,我需要执行一些操作:遍历每个元素,获取或设置元素的特定值,比较两个元素,等等。
但是,我不确定哪种方法最适合性能。使用小型数组还是使用对象更好?
我已经考虑过使用带有类型化值(如MDN所定义)的平面数组,这就是image data在Canvas中的存储方式,但是我更喜欢上面的结构。
我创建了一个JSPerf test case来比较两者,第一个结果( 06/03/19 )表示使用对象数组更快。