Javascript 在数组JS中查找三个重复项
当前代码不工作。我想提醒所有3个相等数字的序列Javascript 在数组JS中查找三个重复项,javascript,arrays,Javascript,Arrays,当前代码不工作。我想提醒所有3个相等数字的序列 function myFunction() { var fruits = [3, 3, 3, 5, 4, 6, 8, 9]; var a = fruits.sort(); document.getElementById("demo").innerHTML = a; for(var i = 0, j = 1, k = 2; i < fruits.length, j < fruits.length, k &l
function myFunction() {
var fruits = [3, 3, 3, 5, 4, 6, 8, 9];
var a = fruits.sort();
document.getElementById("demo").innerHTML = a;
for(var i = 0, j = 1, k = 2; i < fruits.length, j < fruits.length, k < fruits.length; i++, j++, k++){
if(fruits[i].valueOf() == fruits[j].valueOf() == fruits[k].valueOf()){
alert(fruits[i].valueOf()+" "+fruits[j].valueOf() +" "+fruits[k].valueOf());
}
}
}
函数myFunction(){
var fruits=[3,3,3,5,4,6,8,9];
var a=fruits.sort();
document.getElementById(“demo”).innerHTML=a;
对于(变量i=0,j=1,k=2;i
您可以尝试以下选项:
for(var i = 0; i < fruits.length; i++){
if(fruits[i] === fruits[i+1] && fruits[i] === fruits[i+2]){
//msg
alert('found!');
}
}
for(var i=0;i
您可以尝试以下选项:
for(var i = 0; i < fruits.length; i++){
if(fruits[i] === fruits[i+1] && fruits[i] === fruits[i+2]){
//msg
alert('found!');
}
}
for(var i=0;i
试试这个:
var fruits = [3, 3, 3, 5, 4, 6, 8, 9];
var a = fruits.sort();
var cursor = 0;
var arraySize = fruits.length;
while(cursor < arraySize - 3){
//big step:
if(a[cursor] == a[cursor + 1] && a[cursor] == a[cursor + 2]){
console.log(a[cursor]);
cursor = cursor + 3;
continue;
}
//medium step:
if(a[cursor] == a[cursor + 1]){
cursor = cursor + 2;
continue;
}
cursor++;
}
var fruits=[3,3,3,5,4,6,8,9];
var a=fruits.sort();
var=0;
var arraySize=果长;
while(光标
它的输出将是3(因为元素有3个连续出现)尝试以下操作:
var fruits = [3, 3, 3, 5, 4, 6, 8, 9];
var a = fruits.sort();
var cursor = 0;
var arraySize = fruits.length;
while(cursor < arraySize - 3){
//big step:
if(a[cursor] == a[cursor + 1] && a[cursor] == a[cursor + 2]){
console.log(a[cursor]);
cursor = cursor + 3;
continue;
}
//medium step:
if(a[cursor] == a[cursor + 1]){
cursor = cursor + 2;
continue;
}
cursor++;
}
var fruits=[3,3,3,5,4,6,8,9];
var a=fruits.sort();
var=0;
var arraySize=果长;
while(光标
它的输出将是3(因为元素连续出现3次)试试这个
for(var i = 0; i < fruits.length; i++) {
if(( fruits[i+1] !== null ) && (fruits[i] === fruits[i+1])) {
if(( fruits[i+2] !== null ) && (fruits[i] === fruits[i+2])) {
// your message
alert('');
}
}
}
for(var i=0;i
试试这个
for(var i = 0; i < fruits.length; i++) {
if(( fruits[i+1] !== null ) && (fruits[i] === fruits[i+1])) {
if(( fruits[i+2] !== null ) && (fruits[i] === fruits[i+2])) {
// your message
alert('');
}
}
}
for(var i=0;i
使用无序扩展示例数组、array.slice
、array.indexOf
和数组的解决方案。一些
函数:
function myFunction() {
var fruits = [3, 3, 5, 3, 4, 6, 8, 9, 9, 7, 9],
len = fruits.length, k = 0, notEqual = false, sequence;
fruits.sort();
while (k <= len) {
sequence = fruits.slice(k, k + 3);
if (sequence.length < 3) break;
notEqual = sequence.some((v, k, arr) => arr.indexOf(v) !== 0);
if (!notEqual) { // check if all numbers in the sequence are equal
console.log(sequence);
k += 2;
} else {
k += 1;
}
}
}
myFunction();
使用无序扩展示例数组、
array.slice
、array.indexOf
和数组的解决方案。一些
函数:
function myFunction() {
var fruits = [3, 3, 5, 3, 4, 6, 8, 9, 9, 7, 9],
len = fruits.length, k = 0, notEqual = false, sequence;
fruits.sort();
while (k <= len) {
sequence = fruits.slice(k, k + 3);
if (sequence.length < 3) break;
notEqual = sequence.some((v, k, arr) => arr.indexOf(v) !== 0);
if (!notEqual) { // check if all numbers in the sequence are equal
console.log(sequence);
k += 2;
} else {
k += 1;
}
}
}
myFunction();
我可以看出代码中有两个主要问题 1) 如果条件在循环中:
if(fruits[i].valueOf() == fruits[j].valueOf() == fruits[k].valueOf())
此条件将始终为false,因为当它与两个值进行比较时,结果将为false或true,然后再次将false和true与每次都为false的值进行比较,即(true==3)结果:false
2) 我可以看到您正在使用的alerts valueOf方法中,您不需要它,您可以直接使用[I]来获取值
function myFunction() {
var fruits = [3, 3, 3, 5, 4, 6, 8, 9];
var a = fruits.sort();
document.getElementById("demo").innerHTML = a;
for(var i = 0, i < fruits.length-3;i++){
if((fruits[i] == fruits[i+1]) &&(fruits[i]== fruits[i+2])){
alert(fruits[i]+" "+fruits[i+1] +" "+fruits[i+2]);
}
}}
函数myFunction(){
var fruits=[3,3,3,5,4,6,8,9];
var a=fruits.sort();
document.getElementById(“demo”).innerHTML=a;
对于(var i=0,i
我可以看出代码中存在两个主要问题
1) 如果条件在循环中:
if(fruits[i].valueOf() == fruits[j].valueOf() == fruits[k].valueOf())
此条件将始终为false,因为当它与两个值进行比较时,结果将为false或true,然后再次将false和true与每次都为false的值进行比较,即(true==3)结果:false
2) 我可以看到您正在使用的alerts valueOf方法中,您不需要它,您可以直接使用[I]来获取值
function myFunction() {
var fruits = [3, 3, 3, 5, 4, 6, 8, 9];
var a = fruits.sort();
document.getElementById("demo").innerHTML = a;
for(var i = 0, i < fruits.length-3;i++){
if((fruits[i] == fruits[i+1]) &&(fruits[i]== fruits[i+2])){
alert(fruits[i]+" "+fruits[i+1] +" "+fruits[i+2]);
}
}}
函数myFunction(){
var fruits=[3,3,3,5,4,6,8,9];
var a=fruits.sort();
document.getElementById(“demo”).innerHTML=a;
对于(var i=0,i
Hmm您可以这样做,但从v0.0.1开始,仅适用于单个数字
var fruits=[3,3,3,5,4,6,8,9,6,6],
triple=fruits.join(“”).match(/(\d)\1\1/g.map(e=>e.split(“”).map(e=>e*1));
document.write(JSON.stringify(triple))代码>Hmm您可以这样做,但从v0.0.1开始,它只适用于单个数字
var fruits=[3,3,3,5,4,6,8,9,6,6],
triple=fruits.join(“”).match(/(\d)\1\1/g.map(e=>e.split(“”).map(e=>e*1));
document.write(JSON.stringify(triple))代码>