如何解决在JavaScript中迭代时如何获取当前JSON属性的名称?
| 我有这样的变量内的JSON对象:var chesspieces = {
\"p-w-1\" : {
\"role\":\"pawn\",\"position\":{\"x\":1,\"y\":2},\"state\":\"free\",\"virgin\":\"yes\"
},\"p-w-2\" : {
\"role\":\"pawn\",\"position\":{\"x\":2,...
};
而且我正在为每个循环遍历它们:
for (var piece in chesspieces){
//some code
}
我将如何从中获得当前的作品名称?例如,我们当前在第一个元素上(件= 0):chesspiece[piece].GiveMeTheName
==>,这将导致字符串\“ p-w-1 \”。
我实际上打算将当前元素传递给函数,因为我需要检查一些东西,所以它看起来像这样:
//constructor for this function looks like this: function setPiece(piece,x,y);
function setPiece(chesspiece[piece],chesspiece[piece].position.x,chesspiece[piece].position.y){
//and here I need to get something like
piece.GiveMeTheName ==> which gives me string \"p-w-1\"
}
我还在我的项目中使用jQuery,所以如果该库中有可用的东西,请告诉我。
解决方法
恩
piece
已经不是对象的名称了吗? JavaScript中的“ 5”为您提供密钥名称。
因此,当您执行for (var piece in chessPieces) console.log(piece);
时,它将打印出p-w-1
,p-w-2
等
, 我会使用$ .each(obj,fn)。该功能允许访问当前元素的对象键。
$.each(chessPieces,function(key,value) {
//key = \"p-w-1\"
//value = { \"role\":\"pawn\",... }
//this === value
});
, for (var piece in chessPieces){
alert(piece)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。