使用javascript编程从另一个数组的值获取数组中最低索引的值

时间:2016-03-13 08:40:18

标签: javascript arrays

我有两组数组

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编程在AB

这是我的代码正常工作上面的示例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));

提前致谢

1 个答案:

答案 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>');