我有两组数组
var A = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"];
var B = ["B", "J", "A", "C", "G"];
现在我需要来自var B
的值,这是最高和最高的值。变量A
中的最低指数,它是J
& A
我必须找出J
&通过JavaScript编程在A
中B
这是我的代码正常工作上面的示例var A
& B
但可以满足我的实际要求
var C = ["SX", "S", "M", "L", "XL", "XXL", "ML", "LL", "XLL", "MK", "LK", "XLK", "MS", "LS", "XLS"];
var D = ["XLL", "XXL", "XLK"];
var A = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"];
var B = ["B", "J", "A", "C", "G"];
var C = ["SX", "S", "M", "L", "XL", "XXL", "ML", "LL", "XLL", "MK", "LK", "XLK", "MS", "LS", "XLS"];
var D = ["XLL", "XXL", "XLK"];
function customArrayFunction(A, B) {
var sortB = [];
B.forEach(v => sortB.push(v));
var res = B.sort((a, b) => {
if (a < b)
return -1;
else if (a > b)
return 1;
return 0;
}).find(v => A.indexOf(v) > -1);
return res;
}
document.write(customArrayFunction(A, B));
document.write('<br>' + customArrayFunction(C, D));
提前致谢
答案 0 :(得分:2)
对于给定数组object
的索引,这是一个临时ordered
的提案,如果排序索引小于或大于返回的实际值,则会进行一些比较。
function x(ordered, search) {
var object = {},
result;
ordered.forEach(function (k, i) {
object[k] = i;
});
search.forEach(function (a) {
if (!result) {
result = [a, a];
return;
}
if (object[a] < object[result[0]]) {
result[0] = a;
return;
}
if (object[a] > object[result[1]]) {
result[1] = a;
}
});
return result;
}
var a = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"],
b = ["B", "J", "A", "C", "G"],
c = ["SX", "S", "M", "L", "XL", "XXL", "ML", "LL", "XLL", "MK", "LK", "XLK", "MS", "LS", "XLS"],
d = ["XLL", "XXL", "XLK"];
document.write('<pre>' + JSON.stringify(x(a, b), 0, 4) + '</pre>');
document.write('<pre>' + JSON.stringify(x(c, d), 0, 4) + '</pre>');