【发布时间】:2019-04-25 09:38:07
【问题描述】:
我有一个包含对象数组的变量“layerArr”。每个都有自己的属性。
我希望遍历每个对象的 'absoluteEndM' 属性以检查其值是否大于 sctrLength 的值,然后根据答案执行某些操作。我尝试了以下方法:
LayerArr[i].absoluteEndM.forEach(function (endMtr)
{
if (endMtr > sctrLength) {
maxWidth = endMtr;
}
else {
maxWidth = sctrLength;
}
})
和
for (var i = 0; i < LayerArr.length; i++) {
if (LayerArr[j].absoluteEndM > sctrLength) {
maxWidth = LayerArr[j].absoluteEndM;
}
else {
maxWidth = sctrLength;
}
}
两者都不起作用,我不知道为什么。这样做的正确方法是什么?谢谢
编辑:layerArr 包含以下对象:
layerArr[0] , LayerArr[1], LayerArr[2] 和 LayerArr[3] (它们只是编号,没有名字)
每个都有很多属性,例如:
layerArr[0].endDate
layerArr[0].cracked
layerArr[0].absoluteEndM
etc...
和:
layerArr[1].endDate
layerArr[1].cracked
layerArr[1].absoluteEndM
etc...
【问题讨论】:
-
请分享您的对象数组
-
sctrLength和maxWidth声明在哪里......顺便说一下,逻辑看起来有点错误 - 这两个循环正在做完全不同的事情 -
absoluteEndM似乎是一个数字。那么...为什么你认为一个数字有.forEach()方法? -
@Andreas - 或者......它是一个数组,你为什么要将它与一个数字进行比较:p
-
LaterArr.forEach(layer => console.log(layer))
标签: javascript for-loop foreach