JSFiddle - React, Tailwind, and code Playground
by cincodenada
HTML
<h2>Strict equality (for..in):</h2>
Current: <span id="in"></span><br/>
Other: <span id="out"></span>
<h2>Loose equality:</h2>
Current: <span id="in_loose"></span><br/>
Other: <span id="out_loose"></span>
<h2>Strict equality (Array.forEach):</h2>
Current: <span id="in_foreach"></span><br/>
Other: <span id="out_foreach"></span>
JavaScript
var testarr = ["one","two","three"];
var curpos = 2; // This represents some externally-controlled position in the array
var invar = [];
var outvar = [];
for(i in testarr) {
if(i === curpos) {
//If the current index is equal to curpos, put it in the "in" list
invar.push(testarr[i]);
} else {
//Otherwise it's in the "out" list
outvar.push(testarr[i]);
}
}
document.getElementById('in').innerHTML = invar.join(',');
document.getElementById('out').innerHTML = outvar.join(',');
var invar = [];
var outvar = [];
for(i in testarr) {
if(i == curpos) {
invar.push(testarr[i]);
} else {
outvar.push(testarr[i]);
}
}
document.getElementById('in_loose').innerHTML = invar.join(',');
document.getElementById('out_loose').innerHTML = outvar.join(',');
//Another solution: use Array.forEach(), which apparently coerces the
//array indexes to integers
var invar = [];
var outvar = [];
testarr.forEach(function(val, i) {
if(i === curpos) {
//If the current index is equal to curpos, put it in the "in" list
invar.push(testarr[i]);
} else {
//Otherwise it's in the "out" list
outvar.push(testarr[i]);
}
});
document.getElementById('in_foreach').innerHTML = invar.join(',');
document.getElementById('out_foreach').innerHTML = outvar.join(',');