给定一个对象x
,_.keys(x)
和_.values(x)
的结果是否保证按顺序对齐?
对于给定的索引i
,_.keys(x)[i]
和_.values(x)[i]
应引用x
中的相同键值条目。
x
在对一个函数和另一个函数的调用之间保持不变。
我有什么理由可以获得订购问题吗?
答案 0 :(得分:3)
implementation of those functions都使用for (... in ...)
循环(如果存在,则为Object.keys
。)
有些JS引擎报告他们不保证这样的循环订单(来自MDN):
for...in
循环以任意顺序迭代对象的属性(有关为什么人们不能依赖于迭代的看似有序性的原因,请参阅delete operator,至少在跨浏览器中设置)。
从删除操作员注释中,保证所有浏览器顺序正确性的最佳方法是“使用两个单独的数组(一个用于键,另一个用于值),或者构建一个单独的数组 - 属性对象。“