function nth(obj, n)
{
var key, i;
for (key in obj)
{
if (obj.hasOwnProperty(key)) // always do this when you scan an object
{
if (key.indexOf("item") === 0) // this is the filter
{
i = parseInt(key.substring(4), 10); // parse the numeral after "item"
if (i === n)
{
return obj[key]; // return this value
}
}
}
}
return null;
}
3条答案
按热度按时间a11xaf1n1#
键的顺序在javascript对象中不固定。
你可以试试
js81xvg62#
对象键没有顺序,但您可以定义自己的二元关系来对键进行排序。
假设您只考虑以
"item"
开头的键和一个数字后缀(如item23
),那么您可以根据自己的定义将其转换为数字23
,并确定item23
是数组中的 * 第23 * 项。请注意,这完全是任意的,只有在您希望代码中如此时才是正确的。
也就是说,您可以实现一个过滤所有键的函数(只考虑那些以
"item"
开头的键),将数字后缀解析为一个数字,然后将其与您想要的项的索引进行比较。这段代码所做的正是我认为您想要做的:
798qvoo83#
或者,使用Map...