当前位置: 首页 > 知识库问答 >
问题:

javascript - 关于两个数组的对比关系 比较,想请教下大家?

左丘峰
2024-01-18

let arr1 = [333,555,222]
let arr2 = [100,200,300]

arr1 和 arr2 中的每项是对应关系, 请问如何比较 arr1中 最大值的那项,必须对应arr2中的最小值

意思就是说,按正常情况,arr1和arr2的对应关系应为:

let arr1 = [333,555,222]
let arr2 = [200,100,300]

请问如何去写判断?实际场景如:

image.png

需要满足,起订量越多的 价格要越便宜

共有3个答案

闻人德庸
2024-01-18

按照你的需求翻译出来大致就是这样

  • 找到 arr1 的最大值索引
  • 判断 arr2 同索引位的值是不是 arr2 中的最小值
function validate(target, source) {    const targetMax = Math.max(...target);    const targetMaxIndex = target.findIndex(item => item === targetMax)    const sourceMin = Math.min(...source)    return source[targetMaxIndex] === sourceMin}
let arr1 = [333,555,222]let arr2 = [100,200,300]validate(arr1, arr2) // false
let arr1 = [333,555,222]let arr2 = [200,100,300]validate(arr1, arr2) // true
单于奇略
2024-01-18
function everyOrderMatch(arr1, arr2) {  var list1 = [...arr1].sort((a,b) => a-b);  var list2 = [...arr2].sort((a,b) => a-b);  return arr1.every((n,i) => arr2[i] === list2[list2.length-1-list1.indexOf(n)])}

把两个数组从小到大排序,list1.indexOf(n)取出arr1的数值的排序值,list2.length-1-list1.indexOf(n)是1中的排序值对应的2中的排序值(最小对应最大),arr2[i] === m判断该值是否等于arr2中相同索引的数值

戈正初
2024-01-18

要比较两个数组,并确保 arr1 中的最大值对应的元素是 arr2 中的最小值,可以使用循环和条件语句来完成。下面是一个可能的解决方案:

let arr1 = [333, 555, 222];let arr2 = [100, 200, 300];// 获取 arr1 中的最大值和对应索引let maxValue = Math.max(...arr1);let maxIndex = arr1.indexOf(maxValue);// 获取 arr2 中的最小值和对应索引let minValue = Math.min(...arr2);let minIndex = arr2.indexOf(minValue);// 检查最大值和最小值是否对应if (maxIndex === minIndex) {  console.log("满足条件:arr1中的最大值对应arr2中的最小值");} else {  console.log("不满足条件:arr1中的最大值对应arr2中的最小值");}

这个解决方案首先使用 Math.maxMath.min 函数找到 arr1 和 arr2 中的最大值和最小值,然后使用 indexOf 方法获取它们在数组中的索引。最后,通过比较这两个索引是否相等,可以判断最大值是否对应最小值。

注意,如果存在多个最大值或最小值的情况,上述代码将检查第一个匹配的索引。如果需要检查所有匹配的索引,请使用循环来遍历数组。

 类似资料:
  • 我有一个简单的javascript问题,我真的需要一些帮助!我正在尝试弄清楚如何在数组之间比较元素,以及在下一个循环中再次比较较大的元素。假设我们有数组A和数组B。 我的问题是,在比较索引处的元素之后,我希望在下一个循环周期中比较较大的元素。 如果A=[5,7,4],B=[2,8,5] 在第一个循环中,5与2进行比较,2较小,因此会发生一些事情。在下一个循环周期中,我希望5与8进行比较,而对于现在

  • 问题内容: 我想比较两个JavaScript对象数组,以查看它们是否相同。每个数组中的对象可能不会(并且很可能不会)以相同的顺序排列。每个数组最多只能有10个对象。我以为jQuery可以解决这个问题,但是我在网上找不到很多。 我知道可以使用简单的嵌套解决方案,但是有我不知道的内置函数吗? 谢谢。 问题答案: 有一个简单的方法… 如果以上返回true,则即使元素的顺序不同,两个数组也相同。 注意:仅

  • 问题内容: 按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 已锁定 。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我目前正在使用MySQL数据库开发应用程序。 数据库结构仍在不

  • 第一个数组对象,有些没记录电话 第二个数组对象,有一些改动 想要得到一个电话变动情况表:

  • 问题内容: 我有这个间隔,当前每5秒执行一次ajax请求。我对声明有疑问。我的代码总是输入它,并且两个json值完全相同,为什么它认为它们不同? 编辑 这是控制台输出(虚线是分隔请求,它不在实际输出中) 问题答案: 不能保证以相同的方式序列化JSON对象,也不能保证属性以相同的顺序进行序列化,使用并不是测试对象相等性的好方法。 一个更好的例子是这样的函数(前一段时间在互联网上找到,希望我能感谢原始

  • 本文向大家介绍JavaScript 数组比较,包括了JavaScript 数组比较的使用技巧和注意事项,需要的朋友参考一下 示例 为了进行简单的数组比较,您可以使用JSON stringify并比较输出字符串: 注意:这仅在两个对象都可以JSON序列化并且不包含循环引用的情况下起作用。可能会抛出TypeError: Converting circular structure to JSON 您可以