I'm new in JavaScript programming then I got weird case like this. I have an one Array Object and one Array like below :
let data = [{"name": "Apple"} , {"name": "Orange"}, {"name": "Pineapple"}]
let selected = [];
I implement click in data
when item clicked then the selected object in data
move to selected
. The data have no ID so I create the ID with its position index in selected
. But if there is same object the position is same too. I try some code below but it does not work.
1.
const dataObject = {"name": "Apple"};
dataObject['position'] = selected.length;
selected.push(dataObject);
const dataObject = {"name": "Apple"};
selected.push(dataObject);
for(let i = 0; i<selected.length; i++) {
selected[i]['position'] = i;
}
The weird case is if there is same object like Apple, Orange, Apple
, I get the wrong ID in Array like :
[{"name": "Apple", position: 2} , {"name": "Orange", position: 1}, {"name": "Apple", position: 2}]
Edit
Here the reproducible code :
let data = [{"name": "Apple"} , {"name": "Orange"}, {"name": "Pineapple"}]
let selected = [];
const dataObject = {"name": "Apple"};
selected.push(dataObject);
selected.push(dataObject);
for(let i = 0; i<selected.length; i++) {
selected[i]['position'] = i;
}
document.write('<br>' + JSON.stringify(selected));
// Output : [{"name":"Apple","position":1},{"name":"Apple","position":1}]
// Output Expect: [{"name":"Apple","position":0},{"name":"Apple","position":1}]
Where might be my mistake?