查找最大和最小数组Javascript
我试图找出比较两个阵列的最佳方法 基本上我想知道最大和最小的数组,以便进一步处理。以下是迄今为止我的代码:查找最大和最小数组Javascript,javascript,Javascript,我试图找出比较两个阵列的最佳方法 基本上我想知道最大和最小的数组,以便进一步处理。以下是迄今为止我的代码: merge: function(arrOne, arrTwo) { if(arrOne == null || arrTwo == null) throw new Error(); var bigArr = arrOne.length > arrTwo.length ? arrOne : arrTwo, smallArr = bigArr.length
merge: function(arrOne, arrTwo) {
if(arrOne == null || arrTwo == null) throw new Error();
var bigArr = arrOne.length > arrTwo.length ? arrOne : arrTwo,
smallArr = bigArr.length == arrOne.length ? arrTwo : arrOne;
console.log(bigArr);
console.log(smallArr);
}
虽然这是可行的,但我猜必须有一种更简单、更有效的方法来做到这一点。有什么想法吗?如果数组之间存在未定义的值,则代码将失败。如果您需要处理这种情况,您可能需要尝试一种完全不同的方法
var myArray = new Array();
myArray[100] = true;
console.log(myArray.length); // returns 101
最好的方法是不使用三元数,而是在正常条件下写入
var bigArr, smallArr;
if(arrOne.length > arrTwo.length){
bigArr = arrOne;
smallArr = arrTwo;
}else{
smallArr = arrOne;
bigArr = arrTwo;
}
可读性强,速度快,显然没有bug
如果确实希望使用三元运算符(例如,避免重复声明和声明后赋值),正确的解决方案可能是重复(或缓存)条件:
var bigArr = arrOne.length > arrTwo.length ? arrOne.length : arrTwo.length,
smallArr = arrOne.length > arrTwo.length ? arrTwo.length : arrOne.length;
有些可读,显然没有bug,在声明时赋值
如果要避免If
和条件重复,仍然可以。但是,代码不可读(主要是因为使用了逗号运算符),因此不应在生产代码中使用。不过,它可能对代码高尔夫仍然有用,我将适当地命名变量。小心处理:
l=(a.length>b.length)?(s=b,a):(s=a,b)
@techfoobar它将使它更具可读性,OTOHI将把你的=='s改为=='s@JanDvorak Ahh。很好。“我甚至没想到。”塞森马莱诺,正如我说的,这是一片混乱。如果有人在我们的代码库中使用它,而
如果可以使用,我会得到一个巨大的?
,然后用棍棒打那个家伙。@Jazzepi注意引用一个不存在的属性不是错误<代码>控制台.log(window.foo)