因此,我有2个单独的2D数组,它们的长度不一定相同,并且我想为每个对象创建一个对象。我做的:
var obj1 = {},
obj2 = {};
for (var i=0; i<arr1.length; i++) {
obj1[arr1[i][1]] = arr1[i][0];
}
for (var j=0; j<arr2.length; j++) {
obj2[arr2[j][1]] = arr2[j][0];
}
我的问题是,是否有一种方法可以只使用一个循环。谢谢!
最佳答案
您真正想要的是消除重复的函数抽象。没有什么可以提高效率的(如果您指的是时间复杂度,而不是开发人员效率):
function arrToObj(arr) {
var obj = {};
for (var i=0; i<arr.length; i++) {
obj[arr[i][1]] = arr[i][0];
}
return obj;
}
var obj1 = arrToObj(arr1),
obj2 = arrToObj(arr2);
该循环仍执行两次,但只编写一次。
关于javascript - for循环效率,将两个for循环合为一个,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42926985/