如何获取javascript中对象数组中的对象数组的长度?
我曾尝试在谷歌上搜索这个问题,并在stackoverflow中搜索,但没有成功,所以作为最后的手段,我在问这个问题,以防有人能给我指出正确的方向 我在下面给出了一个代码的示例如何获取javascript中对象数组中的对象数组的长度?,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我曾尝试在谷歌上搜索这个问题,并在stackoverflow中搜索,但没有成功,所以作为最后的手段,我在问这个问题,以防有人能给我指出正确的方向 我在下面给出了一个代码的示例 var objectInfo = [ { name:"object1", materials: [{ name: "wood", quantity:10 }, { name: "stone", quantity:16 }], }
var objectInfo = [
{
name:"object1",
materials: [{
name: "wood",
quantity:10
}, {
name: "stone",
quantity:16
}],
}, {
name:"object2",
materials: [{
name: "wood",
quantity:10
}, {
name: "stone",
quantity:16
}, {
name: "bricks",
quantity:100
}],
}]
我的问题是,如何获得材质对象数组的长度
我的努力如下:
function getMaterialsArrayLength(objName) {
for (i = 0; i < objectInfo.length; i++) {
if (objectInfo[i].name == objName) {
return objectInfo[i].materials.length
}
}
};
函数GetMaterialArrayLength(objName){
对于(i=0;i如果以前发布过此消息,我深表歉意。您无法获取不存在的数组的长度;更准确地说,您查看的数组的元素是未定义的,因此无法找到长度:
var objectInfo=[{
名称:“object1”,
材料:[{
名称:“木头”,
数量:10
}, {
名称:“石头”,
数量:16
}],
}, {
名称:“object2”,
材料:[{
名称:“木头”,
数量:10
}, {
名称:“石头”,
数量:16
}, {
名称:“砖块”,
数量:100
}],
}]
函数getMaterialsLength(objName){
返回objectInfo.find(o=>o.name==objName).materials.length;
}
log(getMaterialsLength('object2')代码>只需通过其索引访问对象:
var objectInfo=[
{
名称:“object1”,
材料:[{
名称:“木头”,
数量:10
}, {
名称:“石头”,
数量:16
}],
}, {
名称:“object2”,
材料:[{
名称:“木头”,
数量:10
}, {
名称:“石头”,
数量:16
}, {
名称:“砖块”,
数量:100
}],
}];
console.log(“objectInfo[0].materials.length:+objectInfo[0].materials.length”);
console.log(“objectInfo[1].materials.length:+objectInfo[1].materials.length”)代码>使用lodash.js
var objectInfo=[
{
名称:“object1”,
材料:[{
名称:“木头”,
数量:10
}, {
名称:“石头”,
数量:16
}],
}, {
名称:“object2”,
材料:[{
名称:“木头”,
数量:10
}, {
名称:“石头”,
数量:16
}, {
名称:“砖块”,
数量:100
}],
}];
函数getMaterialsLength(objName){
_.每个(对象信息、功能(obj){
如果(obj.name==objName){
控制台日志(尺寸(对象材料));
}
});
}
getMaterialsLength('object2')代码>
此处缺少括号:for(i=0;i
@wostex修复了这一问题,但不幸的是它没有帮助。为什么?您的代码现在可以工作了: