簡體   English   中英

使用對象修改 JavaScript 數組

[英]Modifying an JavaScript Array with Objects

我遇到了一個奇怪的問題,我不知道是什么原因造成的。

我在 JavaScript 中有一個對象數組。 就像這個:

  var test = [{"title":"one"}, {"title":"two"}, {"title":"three"}, {"title":"four"}, {"title":"five"}, {"title":"six"}, {"title":"seven"}, {"title":"eight"}, {"title":"nine"}];

我現在試圖選擇七個完整的隨機條目(如果我多次選擇相同的條目無關緊要),向對象添加一些值,並將其推送到一個新數組。 像這樣:

    var schedule = [];

for(var i = 0 ; i < 7 ; i++) {

    var randomNumber = Math.floor(Math.random() * (test.length - 1));
    var temp = test[randomNumber];
    temp["id"] = i;

    schedule.push(temp);

}

我期望成為:一個數組,包含以下對象:

[{"title":"one", 0}, {"title":"three", 1}, {"title":"one", 2}, {"title":"two", 3}, {"title":"five", 4}, {"title":"one", 5}, {"title":"eight", 6}, {"title":"two", 7}]

但是,這就是我真正不明白的,每次對象重新出現並被推送到數組時,它都會覆蓋其舊條目。 我變成了這樣的數組:

[{"title":"one", 5}, {"title":"three", 1}, {"title":"one", 5}, {"title":"two", 7}, {"title":"five", 4}, {"title":"one", 5}, {"title":"eight", 6}, {"title":"two", 7}]

誰可以給我解釋一下這個?

 var test = [{ "title": "one" }, { "title": "two" }, { "title": "three" }, { "title": "four" }, { "title": "five" }, { "title": "six" }, { "title": "seven" }, { "title": "eight" }, { "title": "nine" }]; const result = test.map((x, i) => ({ title: test[Math.floor(Math.random() * (test.length - 1))].title, id: i })); console.log(result)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM