【问题标题】:match the values in array with content in second array javascript将数组中的值与第二个数组 javascript 中的内容匹配
【发布时间】:2021-02-22 08:35:06
【问题描述】:

我遇到以下问题:

我想知道第一个数组中位置的平均值,假设在这种情况下是 3. 3,那么将是我在第二个数组中寻找的位置,因此将返回“d”作为答案.这是我的代码,到目前为止,我什至无法返回位置的总和。你们能帮帮我吗?!

const avgPosition = (list1, list2) => {
  return (list1).reduce((a, b) => a + b, 0).map((element,index)=>{
    return [list2[element]]
  })
}

console.log(avgPosition(["a","b","c"],["a","b","c","d","e"]))

【问题讨论】:

  • 您要对字符串求和?
  • 不是真的,我试图获得职位的平均值。第一个数组的含义:a=0, b=1, c= 2;它的平均值是 1,那么第二个数组中 1 的位置就是“b”,所以答案就是 b。
  • 您的评论与您在问题中所说的不同:“第一个数组中位置的平均值,假设在这种情况下为 3”。 .. 另外,假设list1[0,1,2,3,4,5],平均索引是2.5 它应该返回list2 中的哪个索引?
  • 非常好的问题,我想说我会希望四舍五入到下一个整数?是不是超级疯狂?我正在学习并且对这个问题有点迷惑。

标签: javascript arrays functional-programming tuples array.prototype.map


【解决方案1】:

你想做这样的事情吗?我不确定我是否理解你的问题,但我还是试了一下

const avgPosition = (list1, list2) => {
  if(!list1.length) return "I'm sorry I have nothing to do with an empty array!";
  let index = list1.reduce(function(a, b, c) {
    return a + c;
  }, 0) / list1.length;
  return list2[index] || `I'm confused should I pick ${list2[Math.floor(index)]} or ${list2[Math.ceil(index)]}`;
}

console.log(avgPosition([],["a","b","c","d","e"]));
console.log(avgPosition(["a","b","c"],["a","b","c","d","e"]));
console.log(avgPosition(["a","b","c","d"],["a","b","c","d","e"]));

【讨论】:

    猜你喜欢
    • 2018-03-24
    • 2019-09-02
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    • 2018-04-24
    • 2013-05-12
    • 2015-05-23
    相关资源
    最近更新 更多