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

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]

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

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

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


回答:

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中相同索引的数值


回答:

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

  • 找到 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


回答:

let arr1 = [333, 555, 222, 444];

let arr2 = [200, 100, 300, 110];

function fn(countArr, priceArr) {

let newArr = priceArr.map((price, index) => ({

count: countArr[index],

price: price,

}));

// 数量升序 比较 价格降序

arr1 = [...newArr].sort((a, b) => a.count - b.count)

arr2 = [...newArr].sort((a, b) => b.price - a.price);

return arr1.every((item, index) => item.price === arr2[index].price);

}

fn(arr1, arr2);

以上是 关于两个数组的对比关系 比较,想请教下大家? 的全部内容, 来源链接: utcz.com/p/935331.html

回到顶部