第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我想知道是否可以在沒有 if 語句的情況下比較兩個數(shù)組項(xiàng)

我想知道是否可以在沒有 if 語句的情況下比較兩個數(shù)組項(xiàng)

慕桂英3389331 2021-10-07 20:19:48
鑒于我想比較兩個同樣長的數(shù)組,如果它們在同一位置具有相同的值,我可以使用循環(huán)但沒有 IF STATEMENT 來執(zhí)行此操作嗎?此代碼有效function twoArrays(arr, arr2) {    var count = 0;    arr.forEach (function(item, index){        if(arr[item, index]===arr2[item, index]) {            count++        }    })    return count}twoArrays([2,3,4,6],[2,1,4,5])// return 2但是如果沒有 if 語句呢?編輯:每次有比賽時,計(jì)數(shù)器都會增加一。獎勵:我可以使用其他循環(huán)嗎?(哪一個)?
查看完整描述

1 回答

?
汪汪一只貓

TA貢獻(xiàn)1898條經(jīng)驗(yàn) 獲得超8個贊

有幾種方法可以避免if聲明,但不清楚您為什么要這樣做。

第一種是使用filter

var count = arr1.filter(function(item, index) { return item === arr2[index]; }).length;

...但它創(chuàng)建了一個不必要的數(shù)組(臨時)。

現(xiàn)場示例:

function twoArrays(arr1, arr2) {

    return arr1.filter(function(item, index) { return item === arr2[index]; }).length;

}

console.log(twoArrays([2,3,4,6],[2,1,4,5]));

第二種是使用&&:


var count = 0;

arr1.forEach(function(item, index) { item === arr2[index] && ++count; });

……但這真的只是一種if偽裝。&&評估其左側(cè)操作數(shù),如果該操作數(shù)為假,則將該假值作為其結(jié)果(然后在上面將其丟棄);如果左側(cè)操作數(shù)的值為真,則&&評估其右側(cè)操作數(shù)并將其作為結(jié)果。這意味著只有在左側(cè)操作數(shù)的值為真時才會發(fā)生右側(cè)操作數(shù)的副作用,這就是為什么++count有效。


現(xiàn)場示例:

function twoArrays(arr1, arr2) {

    var count = 0;

    arr1.forEach(function(item, index) { item === arr2[index] && ++count; });

    return count;

}

console.log(twoArrays([2,3,4,6],[2,1,4,5]));

同樣,您可以使用條件運(yùn)算符,或者與forEach:


var count = 0;

arr1.forEach(function(item, index) { count += item === arr2[index] ? 1 : 0; });

...或與reduce:


var count = arr1.reduce(function(acc, item, index) { return acc + (item === arr2[index] ? 1 : 0); }, 0);

現(xiàn)場示例:

function twoArraysA(arr1, arr2) {

    var count = 0;

    arr1.forEach(function(item, index) { count += item === arr2[index] ? 1 : 0; });

    return count;

}

console.log(twoArraysA([2,3,4,6],[2,1,4,5]));


function twoArraysB(arr1, arr2) {

    return arr1.reduce(function(acc, item, index) { return acc + (item === arr2[index] ? 1 : 0); }, 0);

}

console.log(twoArraysB([2,3,4,6],[2,1,4,5]));

...但同樣,那里仍然有條件邏輯。


我不推薦其中任何一個。只需使用if. :-)


查看完整回答
反對 回復(fù) 2021-10-07
  • 1 回答
  • 0 關(guān)注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號