我有两个长度相同的数组,例如var a = [5,2,6,2,7,5];
和var b = [2,3,7,4,3];
。
我还有另一个数组var c = [0,0,0,0,0];
如何比较a
和b
以将最高元素放入c
,在这种情况下应该成为[5,3,7,7,5];
答案 0 :(得分:2)
ES6单线解决方案:
c = a.map((a, i) => a > b[i] ? a : b[i])
答案 1 :(得分:2)
Array#映射到一个新数组,并取a
中当前数字的最大值,以及数组b
中具有相同索引的数字:
const a = [5, 2, 6, 2, 7];
const b = [2, 3, 7, 4, 3];
const c = a.map((num, i) => Math.max(num, b[i]));
console.log(c);
答案 2 :(得分:1)
您将迭代两个数组,在每个步骤进行比较,然后插入较大的数字:
注意:即使你提到你有相同长度的数组,你给出的两个样本数组也没有相同的长度,所以我的例子使用类似的等长数组:
let a = [5, 2, 6, 2, 7]
let b = [2, 3, 7, 4, 3]
let c = [0, 0, 0, 0, 0]
// we can use a single loop index `i` since the arrays have same length
for (let i = 0; i < a.length; i++) {
// take the current number from a and from b
let numA = a[i]
let numB = b[i]
// determine larger of the two numbers
let largerNumber = numA > numB ? numA : numB
// add larger to array at current position
c[i] = largerNumber
}
console.log(c)
您可以将解决方案简化为简单的地图操作,如demonstrated by dhilt。
答案 3 :(得分:0)
只需使用简单的for
循环:
var a = [2, 3, 7, 8];
var b = [3, 2, 5, 9];
var c = [0, 0, 0, 0];
for (var i = 0; i < c.length; i++) {
c[i] = a[i] > b[i] ? a[i] : b[i];
}
console.log("Result: "+c);
&#13;
答案 4 :(得分:-1)
参见示例:
var a = [5,2,6,2,7,5];
var b = [2,3,7,4,3];
var c = [0,0,0,0,0];
for(var i in c){
c[i]=a[i]>b[i]?a[i]:b[i];
}
console.log('result:' + c);
答案 5 :(得分:-1)
试试这个,下面的代码需要两个数组并给出最大数
的结果var array=[5,3,7,7,5];
var array2 = [5,6,4];
var array3=array.concat(array2);
var max=array3.sort((a,b)=>b-a)[0];
console.log("Result: " + max);