gpt4 book ai didi

javascript - JSFiddle 对象排序算法崩溃

转载 作者:行者123 更新时间:2023-11-29 19:05:11 26 4
gpt4 key购买 nike

如果这是一个有点愚蠢的问题,我深表歉意,我正在学习 JS 考试,我随机分配了一个任务,任务是在 JSFiddle 中按年份对 URL 中的 JSON 数据进行排序。代码如下:

https://jsfiddle.net/gs6eey97/ (i apologize for all the comments).

第一个问题是控制台返回排序列表,但每个排序元素在排序列表中出现两次(Console result)。我考虑在排序数据放入数组之前添加一个 if 语句,以通过更改以下内容来过滤重复项:

minYear.push(minYearPom);
minSort.push(propPom);

以下内容:

if (propPom != minSort[minSort.length - 1]) {
minYear.push(minYearPom);
minSort.push(propPom);
}

并且 Chrome 停止响应,我尝试删除

minYear.push(minYearPom);

当我意识到我并不真的需要它,并且 Chrome 停止响应时,我添加了简单的 console.log 来查看某些变量的值以试图找出问题所在,而 Chrome 停止响应。 friend 不能似乎也找到了代码的问题,所以如果有人能找到问题,我将不胜感激。

最佳答案

当你得到一个带有对象的对象时,

{
movies: {
tt0111161: {
Title: "The Shawshank Redemption",
Year: "1994",
Runtime: "142",
Director: "Frank Darabont",
Actors: [
"Tim Robbins",
"Morgan Freeman",
"Bob Gunton",
"William Sadler"
],
Language: [
"English"
],
imdbRating: "9.3",
imdbVotes: "138"
},
// ...
}
}

您需要获取键,例如 tt0111161 等,并对键数组进行排序:

var data = { movies: { tt0111161: { Title: "The Shawshank Redemption", Year: "1994", Runtime: "142", Director: "Frank Darabont", Actors: ["Tim Robbins", "Morgan Freeman", "Bob Gunton", "William Sadler"], Language: ["English"], imdbRating: "9.3", imdbVotes: "138" }, tt0068646: { Title: "The Godfather", Year: "1972", Runtime: "175", Director: "Francis Ford Coppola", Actors: ["Marlon Brando", "Al Pacino", "James Caan", "Richard S. Castellano"], Language: ["English", "Italian", "Latin"], imdbRating: "9.2", imdbVotes: "96" } } },
keys = Object.keys(data.movies);

keys.sort(function (a, b) {
return data.movies[a].Year - data.movies[b].Year;
});

console.log(keys);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - JSFiddle 对象排序算法崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43477607/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com