[英]Iterating over json objects in array
我有一个名为mainarray的数组,它有多个json对象。
mainarray:Object
>key1: Array[30]
>key2: Array[20]
我想对Array [30]和Array [20]进行排序。 我想这样做:
mainarray.forEach((arrayinner)
{
//sort
});
但我收到错误: 因为无法读取未定义的属性。
我怎么迭代? 并且键名是动态的,我不能硬编码并开始迭代/
您需要函数关键字来获得有效的回调声明。
mainarray.forEach(function (arrayinner)
// ^^^^^^^^
{
//sort
});
但问题更深入:
您需要获取密钥并迭代它们并采用适当的值来应用排序
Object.keys(mainarray).forEach(function (key) {
mainarray[key].sort();
});
您可以获取要迭代的键数组
Object.keys ( mainarray ).forEach( function( arrayinner ){
arrayinner.sort();
});
如果mainarray
的所有键可能没有Array
值,那么您可以在排序之前进行检查
Object.keys ( mainarray ).forEach( function( arrayinner ){
Array.isArray( arrayinner ) || arrayinner.sort();
});
你可以通过循环对象本身的属性并对它们包含的数组进行排序来实现这一点,如下所示:
for (var key in mainarray) {
if (mainarray[key] === Array)
mainarray[key].sort();
}
请注意,默认情况下, sort()
仅使用基本的字母数字排序逻辑。 如果你需要更复杂的东西,你需要自己实现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.