我有2组数组
var A = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"];
var B = ["B", "J", "A", "C", "G"];
现在我必须得到 var B
中的一个值这是 var A
中的最高索引,就是J
我必须找出J
在var B
通过 JavaScript 编程
提前致谢
最佳答案
对第二个数组进行降序排序,然后通过迭代找到元素。您可以使用sort()
用于降序排序, find()
用于获取元素。
var A = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"],
B = ["B", "J", "A", "C", "G"];
function customArrayFunction(A, B) {
// create an additional array variable for storing sorted array, otherwise it will update the order of array B
var sortB = [];
B.forEach(function(v) {
sortB.push(v);
});
// sorting array on descending order
// instead of custom compare function
// you can use `sortB.sort().reverse()` simply
var res = sortB.sort(function(a, b) {
if (a > b)
return -1;
else if (a < b)
return 1;
return 0;
})
// finding element
.find(function(v) {
return A.indexOf(v) > -1;
});
return res;
}
console.log(customArrayFunction(A,B));
console.log(customArrayFunction(["A","D","G"],["B","D","G"]));
使用ES6箭头函数
var A = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"],
B = ["B", "J", "A", "C", "G"];
function customArrayFunction(A, B) {
var sortB = [];
B.forEach(v => sortB.push(v));
var res = sortB.sort((a, b) => {
if (a > b)
return -1;
else if (a < b)
return 1;
return 0;
}).find(v => A.indexOf(v) > -1);
return res;
}
console.log(customArrayFunction(A, B));
console.log(customArrayFunction(["A", "D", "G"], ["B", "D", "G"]));
在 reverse()
的帮助下,更简单的方法无需使用任何自定义比较函数,这有助于反转数组。
var A = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"],
B = ["B", "J", "A", "C", "G"];
function customArrayFunction(A, B) {
var sortB = [];
B.forEach(v => sortB.push(v));
var res = sortB.sort()
.reverse()
.find(v => A.indexOf(v) > -1);
return res;
}
console.log(customArrayFunction(A, B));
console.log(customArrayFunction(["A", "D", "G"], ["B", "D", "G"]));
更新:如果您想根据索引进行搜索,则无需排序,只需使用 find()
var A = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"],
B = ["B", "J", "A", "C", "G"];
function customArrayFunction(A, B) {
var res = A
.find(v => B.indexOf(v) > -1);
return res;
}
console.log(customArrayFunction(A, B));
console.log(customArrayFunction(["A", "D", "G"], ["B", "D", "G"]));
关于javascript - 如何使用javascript编程从另一个数组的值中获取数组中最高索引处的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35885130/