在javascript中为tic-tac-toe游戏排序数组

在javascript中为tic-tac-toe游戏排序数组,javascript,jquery,Javascript,Jquery,我之前发布了关于javascript中对象排序的内容。我对不能对物体进行分类有很大的不满 我被告知的路径是将对象转换为数组 我已将totalScore声明为一个新数组,并对其应用降序函数。这不起作用。你知道为什么吗 下面是代码(我正在开发一个tic-tac-toe游戏): 编辑(问题回答错误) 尝试: 您仍在使用对象而不是数组。记住,在JavaScript中,一切都是对象。因此,如果定义一个数组: var arr = []; 然后向其中添加一项: arr["arr0"] = 1; 数组的长度

我之前发布了关于javascript中对象排序的内容。我对不能对物体进行分类有很大的不满

我被告知的路径是将对象转换为数组

我已将totalScore声明为一个新数组,并对其应用降序函数。这不起作用。你知道为什么吗

下面是代码(我正在开发一个tic-tac-toe游戏):

编辑(问题回答错误)

尝试:


您仍在使用对象而不是数组。记住,在JavaScript中,一切都是对象。因此,如果定义一个数组:

var arr = [];
然后向其中添加一项:

arr["arr0"] = 1;
数组的长度为0,但数组所在的对象将有一个名为
arr0
的新属性。这当然意味着您仍然无法对“数组”进行排序

一种可能的修复方法是使用包含原始键和值的对象填充数组。因此,而不是
totalScore[d_key]=score您可以编写:

totalScore.push({key: d_key, value: score});
现在您可以编写一个适当的排序函数:

function descending(a, b) {
    return b.value - a.value;
}

有点离题,但是,你不是说连接四而不是tic-tac-toe吗?连续6个x将赢得-零和交叉-一些人称之为tic-tac-toe-这将是人工智能用来选择一个好的移动的算法括号在这种情况下是不必要的仍然不起作用,但是哇,solly me-ty指出括号中声明为对象totalScore={},很抱歉这是我的错误。totalScore.sort();totalScore.reverse();这是可行的,泰:)但是现在,我如何使用数据,我需要循环数据并循环每个对象吗?我相信我需要使用totalScore[0]来获得具有最高值的对象,然后循环it@user2065483你说的“数据”是什么意思?我想我不能理解.jQuery.each(totalScore[0],function(key,val){console.log(key);console.log(val);});我在想这样的事情来操纵totalScore中具有最高值的条目
totalScore.push({key: d_key, value: score});
function descending(a, b) {
    return b.value - a.value;
}