У меня есть два массива. Один пустой, другой - с данными. Я выбираю случайных кандидатов и вставляю их в свой пустой массив.Копировать и обновлять значения массива значения исходного значения массива javascript
Как я уже выбрал этих кандидатов, я не хочу, чтобы их имя было выбрано снова, а также я не хочу потерять свою позицию индекса в исходном массиве. Чтобы избежать повторного набора, я устанавливаю name = undefined. Теперь случается, что мой дублированный массив также обновляется с неопределенным.
, если вы запустите приведенный ниже код, переключитесь под строку и проверьте выбранный массив candidates, он даст лучшую информацию.
candidates[candidateIndex[i]].name= undefined;
Как скопировать элемент в другой массив и обновить исходный массив, не затрагивая скопированный массив. Спасибо заранее.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<button onclick="selectCandidate()">Click Here !!!</button> <script>
var selectedCandidate=[];
var candidates = [
{name:"Alpha",
age:"21"
},
{name:"Beta",
age:"21"
},
{name:"Gamma",
age:"21"
},
{name:"Albert",
age:"21"
},
{name:"Alaks",
age:"21"
},
{
age:"21"
},
{
age:"21"
}
];
function selectCandidate(){
var candidateIndex = [];
for(i =0; i<2; i++){
var randomnumber = generateRandomNumber();
if(candidateIndex.indexOf(randomnumber) && candidates[randomnumber].name != undefined){
candidateIndex.push(randomnumber);
}
else{
i--;
}
}
var selectthiscandidate;
for(i=0; i< 2; i++){
selectthiscandidate = candidates[candidateIndex[i]];
selectedCandidate.push(selectthiscandidate);
candidates[candidateIndex[i]].name= undefined;
}
console.log(selectedCandidate);
console.log(candidates);
}
function generateRandomNumber(){
return Math.floor((Math.random() * candidates.length-1) + 1);
}
</script>
</body>
</html>
вас нажмите «selectedCandidate» только ссылку на исходный объект из «кандидатов» – MysterX
Связано с [Что является наиболее эффективным способом клонирования объекта?] (http://stackoverflow.com/questions/122102/what-is-the -Больший эффективный способ, -to-clone-an-object) –
@MysterX это вопрос для меня или ответа. Извините, не могу понять. –