Javascript 比较两个数字数组并返回最高值数组

Javascript 比较两个数字数组并返回最高值数组,javascript,arrays,lodash,Javascript,Arrays,Lodash,比较两个整数数组并返回每个数组中较高的对应整数的唯一数组的最有效方法是什么 (可以使用lodash) 例: 蛮力 var arr1 = [0, 1, 2, 1, 0]; var arr2 = [1, 0, 0, 3, 0]; var result = []; for(var i = 0; i < arr1.length; i++) { if (arr1[i] > arr2[i]) { result.push(arr1[i]); } else { resu

比较两个整数数组并返回每个数组中较高的对应整数的唯一数组的最有效方法是什么

(可以使用lodash)

例:

蛮力

var arr1 = [0, 1, 2, 1, 0];
var arr2 = [1, 0, 0, 3, 0];
var result = [];

for(var i = 0; i < arr1.length; i++) {
  if (arr1[i] > arr2[i]) {
    result.push(arr1[i]);  
  } else {
    result.push(arr2[i]);
  }
}
var arr1=[0,1,2,1,0];
var arr2=[1,0,0,3,0];
var结果=[];
对于(变量i=0;iarr2[i]){
结果:push(arr1[i]);
}否则{
结果:push(arr2[i]);
}
}
蛮力

var arr1 = [0, 1, 2, 1, 0];
var arr2 = [1, 0, 0, 3, 0];
var result = [];

for(var i = 0; i < arr1.length; i++) {
  if (arr1[i] > arr2[i]) {
    result.push(arr1[i]);  
  } else {
    result.push(arr2[i]);
  }
}
var arr1=[0,1,2,1,0];
var arr2=[1,0,0,3,0];
var结果=[];
对于(变量i=0;iarr2[i]){
结果:push(arr1[i]);
}否则{
结果:push(arr2[i]);
}
}
功能选择最高值(arr1、arr2){
var maxLength=Math.max(arr1.length,arr2.length);
var_arr=[];
对于(变量i=0;i
使用拼接阵列和连接:

function selectHighestValues (arr1, arr2) {
  var minLength = Math.min(arr1.length, arr2.length);
  var maxLength = Math.max(arr1.length, arr2.length);
  var longestArrayIndex = arr1.length > arr2.length ? 0 : 1;
  var _arr = [];
  for (var i = 0; i < minLength; i++) {
    _arr[i] = Math.max(arr1[i], arr2[i]);
  }
  if (maxLength > minLength) {
    var sliced = Array.prototype.slice.call(arguments[longestArrayIndex], minLength, maxLength);
    _arr = Array.prototype.concat.call(_arr, sliced);
  }
  return _arr;
}
函数选择最高值(arr1、arr2){
var minLength=Math.min(arr1.length,arr2.length);
var maxLength=Math.max(arr1.length,arr2.length);
var longestarayindex=arr1.length>arr2.length?0:1;
var_arr=[];
对于(变量i=0;i最小长度){
var sliced=Array.prototype.slice.call(参数[longestArrayIndex],minLength,maxLength);
_arr=Array.prototype.concat.call(_-arr,切片);
}
返回_arr;
}
功能选择最高值(arr1、arr2){
var maxLength=Math.max(arr1.length,arr2.length);
var_arr=[];
对于(变量i=0;i
使用拼接阵列和连接:

function selectHighestValues (arr1, arr2) {
  var minLength = Math.min(arr1.length, arr2.length);
  var maxLength = Math.max(arr1.length, arr2.length);
  var longestArrayIndex = arr1.length > arr2.length ? 0 : 1;
  var _arr = [];
  for (var i = 0; i < minLength; i++) {
    _arr[i] = Math.max(arr1[i], arr2[i]);
  }
  if (maxLength > minLength) {
    var sliced = Array.prototype.slice.call(arguments[longestArrayIndex], minLength, maxLength);
    _arr = Array.prototype.concat.call(_arr, sliced);
  }
  return _arr;
}
函数选择最高值(arr1、arr2){
var minLength=Math.min(arr1.length,arr2.length);
var maxLength=Math.max(arr1.length,arr2.length);
var longestarayindex=arr1.length>arr2.length?0:1;
var_arr=[];
对于(变量i=0;i最小长度){
var sliced=Array.prototype.slice.call(参数[longestArrayIndex],minLength,maxLength);
_arr=Array.prototype.concat.call(_-arr,切片);
}
返回_arr;
}

这是我的第一个效率较低的方法:

var arr1 = [0, 1, 2, 1, 0];
var arr2 = [1, 0, 0, 3, 0];

arr1.map(function (item, i) {
  return Math.max(item, arr2[i])
}); // [1, 1, 2, 3, 0]
它缺少的是速度,它获得的是美

或者对于ES6 boverers:

var arr1 = [0, 1, 2, 1, 0];
var arr2 = [1, 0, 0, 3, 0];

arr1.map((item, i) => Math.max(item, arr2[i])); // [1, 1, 2, 3, 0]

这是我的第一个效率较低的方法:

var arr1 = [0, 1, 2, 1, 0];
var arr2 = [1, 0, 0, 3, 0];

arr1.map(function (item, i) {
  return Math.max(item, arr2[i])
}); // [1, 1, 2, 3, 0]
它缺少的是速度,它获得的是美

或者对于ES6 boverers:

var arr1 = [0, 1, 2, 1, 0];
var arr2 = [1, 0, 0, 3, 0];

arr1.map((item, i) => Math.max(item, arr2[i])); // [1, 1, 2, 3, 0]
我相信只有lodash 3.x版本

我相信只有lodash 3.x版本。

使用,并且:

使用,以及:


你为什么在一开始就知道怎么做之前就担心效率?“唯一”数组是什么意思?如果数组长度不同怎么办?您确定示例代码显示的结果正确吗?“返回唯一数组”-你是指唯一值数组?啊,我想我现在明白了。比较同一个索引的值,并返回两者中较高的一个。为什么在一开始就知道如何做之前,您还担心效率?“唯一”数组是什么意思?如果数组长度不同怎么办?您确定示例代码显示的结果正确吗?“返回唯一数组”-你是指唯一值数组?啊,我想我现在明白了。比较同一索引处的值并返回两者中的较高值。Phooey,我希望得到一个递归的函数式解决方案。Phooey,我希望得到一个递归的函数式解决方案。如果一个数组比另一个数组短,是否会使用maxLength获得未定义的偏移量?已修复。如果一个数组比另一个数组短,函数将只从最长数组复制值。添加了具有拼接最长数组和串联的新方法。如果一个数组比另一个数组短,是否使用maxLength获得未定义的偏移量?已修复。如果一个数组比另一个数组短,函数将只复制最长数组中的值。添加了具有拼接最长数组和连接的新方法。后一个数组的Doncha mean const:p后一个数组的Doncha mean const:p