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