Javascript 如何确定数组是否有其他元素?
我有任何数组Javascript 如何确定数组是否有其他元素?,javascript,arrays,Javascript,Arrays,我有任何数组 var myArr = [1,1,1,1,1]; 如果数组中的所有元素都相同,则返回true,否则返回false 例如:myArr[1,1,1,1,1]返回true myArr[1,2,1,1,1]返回false 有人能帮我设计这个代码吗。这就是为什么会有这样的代码 var myArr=[1,1,1,1,2]; var myArr2=[1,1,1,1,2,3,4,5]; console.logmyArr.everyo=>myArr2.indexOfo>=0创建一个函数,如果数组
var myArr = [1,1,1,1,1];
如果数组中的所有元素都相同,则返回true,否则返回false
例如:myArr[1,1,1,1,1]返回true
myArr[1,2,1,1,1]返回false
有人能帮我设计这个代码吗。这就是为什么会有这样的代码
var myArr=[1,1,1,1,2];
var myArr2=[1,1,1,1,2,3,4,5];
console.logmyArr.everyo=>myArr2.indexOfo>=0创建一个函数,如果数组的任何元素不等于1,则返回false 函数retStat myArr{
对于var i=0;i小错误,您正在检查上一个循环中未定义的下一个元素myArr[i+1] 检查条件myArr.length-1
这也可以在不使用循环的情况下实现。您可以检查数组的整个字符串表示设置的第一个元素。如果找到字符串中所有字符的匹配项,它将为您提供空值。使用此选项,您可以知道数组中是否存在所有相同的元素或不同的元素 函数isSamearr{ var str=arr.join; var re=new RegExparr[0],g; var replacedStr=str.replace,; return!booleanplacedstr; } var myArr=[1,1,1,1,1]; console.logisSamemyArr; myArr=[1,2,1,1,1]; console.logisSamemyArr; myArr=[1,1,1,5,1];
console.logisSamemyArr;因为要检查数组中的所有元素是否相同,所以可以将所有元素与第一个元素进行比较。 函数在回调返回true时返回,所以在发现第一个不匹配后不会调用回调 控制台日志检查[1,1,1]; 控制台日志检查[1,2,3]; 控制台。日志检查[]; 函数校验{ 如果!arr.length{ 返回false; } return!arr.someel=>el!==arr[0]; } 我认为这是可行的:
<script type="text/javascript">
var myArr = [1,1,1,1,1];
flg=true;
for(var i=0; i<myArr.length; i++)
{
if(i==(myArr.length-1))
{
if(myArr[i]!=myArr[i-1])
{
flg=false;
}
}
else
{
if(myArr[i] != myArr[i+1])
{
flg=false;
return false;
}
}
}
console.log(flg);
</script>
下面是一个受这个答案启发的解决方案 代码段中的以下函数做什么 删除所有重复项, 如果.length==1,即所有值都相同,则返回true!。 函数数组\u all\u samea{ 返回a.filterfunctionitem,位置{ 返回a.indexOfitem==pos; }.长度==1; } var myArr1=[1,1,1,1,1]; console.logarray\u all\u samemyArr1; var myArr2=[1,2,1,1,1];
console.logarray\u all\u samemyArr2;可能重复我会更新你的答案,以显示用户的要求。他没有提到第二个数组。虽然你的答案显示了如何使用它检查更多变量,但这可能没问题。但你应该先回答主要问题…这只是一个元素。其次,如果你要如何检查数组与数组,请向用户展示如何使用。every将能够说出哪个索引/值未通过测试,而不仅仅是说false。@Matt这是我从数组中所有元素得到的结果,然后我们返回true,否则falseOP只关心给定数组中的所有元素是否都相同。因此,它们是itera用一个数组检查i+1是否等于当前值。在这种情况下,它是if执行正常for循环的重复,并且您已经标记为false,只需短路循环。如果有一百万个元素,并且您在3次迭代后找到了答案…没有必要通过其他一百万个元素得出相同的结果。现在如果y你在标记哪些不相同,哪些会不同…但最好短路。有数百万个元素,可以使用不同的算法,即二进制搜索。我对正则表达式一无所知,也不知道替换在场景后面是如何工作的,所以只是问一下,但是替换是否循环字符串以找到匹配的字符?会吗还想提到的是,在您发现标志已设置后,您可以将回路短路。flg不会变得比false更假。我不会说myArr[I]!=1,因为他的下一次检查可能不会寻找1。他很可能会,但没有说明,并且基于他的示例,其中包含2,那么它对其他值是开放的。我会使1像下一个元素一样更具动态性。或者在索引1处开始循环,并始终检查索引0。
for(var i=0; i<myArr.length-1; i++){
if(myArr[i] != myArr[i+1]){
flg = false;
break;
}
}
<script type="text/javascript">
var myArr = [1,1,1,1,1];
flg=true;
for(var i=0; i<myArr.length; i++)
{
if(i==(myArr.length-1))
{
if(myArr[i]!=myArr[i-1])
{
flg=false;
}
}
else
{
if(myArr[i] != myArr[i+1])
{
flg=false;
return false;
}
}
}
console.log(flg);
</script>