Я пытаюсь назначить новый ключ каждому объекту в массиве с уникальным идентификатором на основе индекса объекта в массиве.
, когда я нажимаю кнопку, он запускается
this.setState({ testStatus: "running", clicked: true });
tests.map(test => {
test.run(x =>
this.setState({
testStatus: {
...this.state.testStatus,
[test.id]: x ? "passed" : "failed"
}
})
);
});
каждый тест имеет рандомизированную задержку и случайный логический результат. Когда я console.log -> testStatus
, он регистрирует следующее
0: "r"
1: "u"
2: "n"
3: "n"
4: "i"
5: "n"
6: "g"
undefined: "passed" <<<<---- variable outcome | undefined is what I want to have a unique id
**The array**
const tests = [
{ description: "Gochujang small batch live-edge green juice photo booth pinterest.", run: testsResult() },
{ description: " DIY shaman narwhal before they sold out chambray aesthetic.", run: testsResult() },
{ description: "Tousled cliche master cleanse, cray chicharrones fixie skateboard", run: testsResult() },
{ description: "Fanny pack keffiyeh coloring book hashtag 90's synth.", run: testsResult() },
{ description: "Hexagon enamel pin artisan drinking vinegar.", run: testsResult() },
{ description: "Knausgaard semiotics fashion axe occupy health goth", run: testsResult() },
];
Метод
uniqueId() {
let strKeys = Object.keys(tests);
tests.map(test => {
for (let index = 0; index < strKeys.length; index++) {
let uniqId = (strKeys[index] = parseInt(strKeys[index]));
Object.assign(test, { id: uniqId });
}
});
}
метод вызывается с обработчиком события щелчка. например,
this.uniqueId();
перед установкой какого-либо состояния и т. п.
вместо назначения
регистрирует для каждого теста назначенное значение testStatus [test.id] дляиндексный ключ
вот так
0: "r"
1: "u"
2: "n"
3: "n"
4: "i"
5: "passed" (variable)
6: "g"
Может кто-нибудь указать на мою ошибочную логику?