javascript - 如何使用javascript编程从另一个数组的值中获取数组中最高索引处的值

标签 javascript arrays

我有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

我必须找出Jvar 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/

相关文章:

javascript - jqgrid 中带有文本的上一个和下一个按钮

javascript - 使用三元运算符进行数组推送

java - 显示数组的友元列表

javascript - 如何使用 Protractor 存储本地存储数据?

javascript - 在按钮按下/事件触发器上传递选定的对象模型

javascript - 如果 ng-if 条件为真,如何设置属性

javascript - 如果发生 Javascript 错误,则显示警报或弹出窗口

arrays - 如何使用 Swift 创建一个 SKSpriteNodes 数组?

javascript - $.get json数组复制

c++ - 将单词和数字的文件输入数组 C++