Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему метод set() не работает, не удаляет одинаковые значения?

Returno Мудрец (11793), открыт 2 недели назад
 let ArrayMathVar = []; 
let ArraySing = ["+", "-", "/", "*"];
let min = 1, max=2, stepSing=4;
let numOne=0, numTwo=0, sing="", numVar="";
let ArrayFilterNum=[];

function num(){
for (let i=0; i < 8; i++){

ArrayMathVar[i] = new Array(0);

for (let j=0; j < 1; j++){

numOne = getRandomNumber(min, max);
numTwo = getRandomNumber(min, max);
sing = ArraySing[Math.floor(Math.random() * (stepSing - 0) + 0)];

numVar = eval(numOne + sing + numTwo);

if( Number.isInteger(numVar) && numVar > 0){

ArrayMathVar[i][j] = numOne + sing + numTwo + "=" + numVar;

}else{

ArrayMathVar[i][j] = "null";

}

}

}
console.log( ArrayMathVar );

}

function getRandomNumber(min, max) {

return Math.floor(Math.random() * (max - min) + min)
}

function DelOdinakovoe(){

let set = new Set(ArrayMathVar);
let setarr=[...set];
console.log(setarr);
}


num();
DelOdinakovoe();

1 ответ
Владислав Коваль Ученик (234) 2 недели назад
Просто предположение, попробуй через цикл добавлять в new set по отдельности каждое значение массива твоего.

let _set = new Set();

for (let index = 0; i < ArrayMathVar.length; i++){
_set.add(ArrayMathVar[index])
}

- типа того
ReturnoМудрец (11793) 2 недели назад
 function similarNum(){ 

let set = new Set(ArrayFilterNum.map(JSON.stringify));
let uniqArray = Array.from(set).map(JSON.parse);

console.log(uniqArray)
}
Владислав Коваль Ученик (234) Returno, Это рабочий метод да? Я просто давно на JS не работал, нужно было что-то кушать - и я пошёл в 1С)) Ну то что я предложил работает, в консоли проверил. Удачки :D
Похожие вопросы