【发布时间】:2020-01-26 11:40:06
【问题描述】:
我是 Javascript 新手。我试图获取数组(arr1)的Math.max(...arr1 [i] [1]),只有当它与第二个数组(arr2)匹配时。然后,将其推送到数组(arr3)上,结果应该没有重复值。
我尝试迭代两个数组(arr1 和 arr2),然后使用“if 语句”来匹配它们。
var arr1 = [ [ 'abandon', -2 ],
[ 'abandon', 1 ],
[ 'abandon', -2 ],
[ 'abduct', 1 ],
[ 'abduct', -2 ],
[ 'abduct', -2 ],
[ 'abhor', -3 ],
[ 'abhor', 1 ],
[ 'abhor', -1 ],
[ 'abil', 2 ],
[ 'abil', 4 ] ];
var arr2 = [ [ 'abandon' ],
[ 'abil' ],
[ 'abhor' ],
[ 'abduct' ],
['test'],
['hey'],
['testAgain'],
['array']];
var arr3 = [];
const mapping = arr2.map(word => {
return word
})
for(var i = 0; i < arr1.length; i++){
if(arr1[i][0] === mapping){
arr3.push(Math.max(...arr1[i][1]))
}
}
let arr4 = [...new Set(arr3)]
//example result:
var arr4 = [[abandon, -2],
[abduct, -2],
[abhor, -3],
[abil, 4]... and so on]
我知道我做错了什么,而且我别无选择。需要帮助。
【问题讨论】:
-
您的映射变量
arr2.map没有意义,您知道映射函数的作用吗? -
@Nard Pascua 我认为预期的输出是错误的,因为
abandon有-2, 1, -2,其中1是最大的。所以请重新检查您的预期输出。
标签: javascript arrays loops iterable