例:問題:Array.prototype.findIndex
var img = $('img');
var div = $('div');
var arr = ['1', '2', '3'];
console.log(arr.findIndex(x => x === img.length ? img.prop('id') : div.prop('id')));
console.log(arr.findIndex(x => x === (img.length ? img.prop('id') : div.prop('id'))));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<div id="2"></div>
出力:
最初のケース:
x === img.length ? img.prop('id') : div.prop('id')
がimg.length
にx
を比較した場合。私はなぜそれが0
を返すのか分からないのですか?
img.prop('id')
戻りundefined
と2
div.prop('id')
戻って、なぜそれが0
を記録したのですか?
秒ケース:
x === (img.length ? img.prop('id') : div.prop('id'))
それはx
に比較する前にdivタグのIDを得ました。大丈夫。
私を修正してください。ありがとうございました!
最初のケースは 'arr.findIndex(x => 2)'と評価され、最初の繰り返しでは常に* true *と評価されます(index * * 0 **)。 – Santi