Javascript 配对键/值数组
考虑两个数组。有钥匙的。另一个是有价值的 输出是由键/值对组成的对象 是否有比以下更好的(性能)方法:Javascript 配对键/值数组,javascript,node.js,Javascript,Node.js,考虑两个数组。有钥匙的。另一个是有价值的 输出是由键/值对组成的对象 是否有比以下更好的(性能)方法: var keys = ["some", "key", "foo", "bar"]; var values = ["this", "are", "values", "dude"]; var result = { }; for(var i = 0, len = keys.length; i < len; i++) { result[keys[i]] = values[i]; } c
var keys = ["some", "key", "foo", "bar"];
var values = ["this", "are", "values", "dude"];
var result = { };
for(var i = 0, len = keys.length; i < len; i++) {
result[keys[i]] = values[i];
}
console.log(result);
var-keys=[“some”,“key”,“foo”,“bar”];
var值=[“这个”、“是”、“值”、“都德”];
var result={};
for(变量i=0,len=keys.length;i
您可以使用数组的indexOf
方法从第二个数组中获取相应的值,例如,对于键'foo',value=values[keys.indexOf('foo')
您可以使用数组的
indexOf
方法从第二个数组中获取相应的值,例如,对于键'foo',value=values[keys.indexOf('foo')
用于以下用途
_.object(keys, values)
O(N)构建的复杂性,O(1)检索的复杂性。。如果检索是你的目标,我不相信你能战胜它。用于以下内容
_.object(keys, values)
O(N)构建的复杂性,O(1)检索的复杂性。。如果检索是你的目标,我不相信你能战胜它。你发现这是一个性能瓶颈吗?如果没有,您为什么会在意?因为我在每个环井中调用这个50万次,直接属性访问(您现在所做的)可能会尽可能快,除非键总是相同的。为什么您希望它在键值对中转换?您可以从第二个数组中获得相应的值,例如,对于键'foo',value=values[keys.indexOf('foo');这将取决于他是更关心构建这个对象的速度,还是以后访问它的速度;直接属性访问实际上是O(1)(一旦构建了对象,即O(N)),而.indexOf('foo')是O(N)w.r.t.密钥数组。您是否发现这是一个性能瓶颈?如果没有,您为什么会在意?因为我在每个环井中调用这个50万次,直接属性访问(您现在所做的)可能会尽可能快,除非键总是相同的。为什么您希望它在键值对中转换?您可以从第二个数组中获得相应的值,例如,对于键'foo',value=values[keys.indexOf('foo');这将取决于他是更关心构建这个对象的速度,还是以后访问它的速度;直接属性访问实际上是O(1)(一旦您构建了对象,它就是O(N)),而.indexOf('foo')是O(N)w.r.t.键数组。正如我上面提到的,请注意这种访问
值的方法的次优运行时间keys.indexOf('foo')
相对于keys
数组在O(N)时间内运行,这意味着,平均而言,运行一次整个keys
数组所需的时间与循环一次所需的时间差不多。是的,我知道,这就是为什么我要在调用循环之前映射键。不过,我要感谢你们两位。正如我前面提到的,请注意这种访问值的方法的运行时间不太理想keys.indexOf('foo')
相对于keys
数组在O(N)时间内运行,这意味着,平均而言,运行一次整个keys
数组所需的时间与循环一次所需的时间差不多。是的,我知道,这就是为什么我要在调用循环之前映射键。不过,我还是要感谢你们两位。看看文档,你不需要.object(键、值)
?看看文档,你不需要.object(键、值)
?