Javascript 在JS中获取JSON节点长度的正确方法?

Javascript 在JS中获取JSON节点长度的正确方法?,javascript,arrays,json,Javascript,Arrays,Json,我有一个简单的JSON文件,它应该是一个数组路径和3个数组(Path1、Path2、Path3)的对象 { "Paths": { "Path1": [{"x":"4","y":"182"},{"x":"220","y":"186"}],

我有一个简单的JSON文件,它应该是一个数组路径和3个数组(Path1、Path2、Path3)的对象

{
    "Paths":
    
        {
            "Path1": [{"x":"4","y":"182"},{"x":"220","y":"186"}],
            "Path2": [{"x":"4","y":"222"},{"x":"256","y":"217"}],
            "Path3": [{"x":"6","y":"170"},{"x":"216","y":"183"}]
        }
    
}
考虑到我发现的一个在线示例,我这样做是为了获得节点路径的长度:

虽然它可以工作,我想知道这是否是正确的方法,因为它似乎太多的代码只获得一个节点长度


谢谢

不确定是否要打印每条路径的长度或获取所有路径的总长度,如果要打印每条路径的长度,则可以使用
map

let length=Object.values(json.path.map)(path=>path.length+1)
控制台日志(长度)
哪个会输出

[ 3, 3, 3 ]
或者像你一样的
forEach

Object.values(json.path).forEach(path=>console.log(path.length+1))
如果您需要总计,可以使用
reduce

let nodeLength=Object.values(json.path).reduce((acc,path)=>acc+path.length,0)
这将为您提供
6

编辑:因为您在评论中说需要知道对象中有多少元素,所以可以使用

Object.keys(json.path).length

若要获得该值,请使用Object.values()和reduce()获取所有路径中所有点的计数

const数据={
“路径”:
{
“路径1”:[{“x”:“4”,“y”:“182”},{“x”:“220”,“y”:“186”}],
“路径2”:[{“x”:“4”,“y”:“222”},{“x”:“256”,“y”:“217”}],
“路径3”:[{“x”:“6”,“y”:“170”},{“x”:“216”,“y”:“183”}]
}
}
const numPoints=Object.values(data.path).reduce((a,c)=>(a+c.length),0)

log(numPoints)
无需使用parseInt(),因为数组
长度
始终为整数。为什么
+1
?它成功了。我把事情弄糊涂了,但这使我头脑清醒了。事实上,我在寻找路径数组(3)的长度,但是length.length成功了。谢谢你的日志!:-)@YanKleber如果您只需要知道
路径
对象中有多少个元素,我也更新了我的答案以包含这些元素
[ 3, 3, 3 ]