我有一个里面有物体的array.我要做的是循环遍历数组,判断是否存在按键的值,以及是否将CSS应用于div,但现在,即使该值存在,指定的CSS也不会应用,它只应用"else"CSS.为什么会发生这种情况,我该如何解决?提前谢谢.

let testArray = [{"length": "None", "duration": "10000", "percentage": "65"}, {"width": "Half", "detail": "under", "duration": "25000", "percentage": "25"}, {"length": "Full", "duration": "20000", "percentage": "90"}]

testArray.forEach((obj) => {
  if (obj.length?.toLowerCase() == 'none') {
    $('.test').css('background-color', 'red')
  } else {
    $('.test').css('background-color', 'blue')
  }
});
.test {
  width: 30%;
  height: 40%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='test'>
  <p>testing</p>
</div>

推荐答案

它变为红色,因为第一个值等于零,但接下来的两个值不等于零,所以它被改回蓝色两次,所以当你得到循环中的对象时,你必须再次通过它们来判断是否有任何属性的值为零,然后断开两个循环.

 let testArray = [{"length": "None", "duration": "10000", "percentage": "65"}, {"width": "Half", "detail": "under", "duration": "25000", "percentage": "25"}, {"length": "Full", "duration": "20000", "percentage": "90"}]
    let checkIfNoneIsFound=0;
    testArray.every((obj) => {
    Object.values(obj).every((val)=>{
     if(val.toLowerCase()=='none'){
       $('.test').css('background-color', 'red');
       checkIfNoneIsFound+=1;
       return false;
       }
       return true;
    })  
    if(checkIfNoneIsFound==1)
    {
      return false;
    }
     $('.test').css('background-color', 'blue') 
     return true;
  });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div class='test'>
      <p>testing</p>
    </div>

Javascript相关问答推荐

将数据从strapi提取到next.js,但响应延迟API URL

React:未调用useState变量在调试器的事件处理程序中不可用

node TS:JWT令牌签名以验证客户端和后台问题之间的身份验证

如何粗体匹配的字母时输入搜索框使用javascript?

在我的html表单中的用户输入没有被传送到我的google表单中

PDF工具包阿拉伯字体的反转数字

更新动态数据中对象或数组中的所有值字符串

如何将数据块添加到d3力有向图中?

确保函数签名中的类型安全:匹配值

在数组中查找重叠对象并仅返回那些重叠对象

覆盖加载器页面避免对页面上的元素进行操作

当我在Reaction中创建一个输入列表时,我的输入行为异常

如何在Bootstrap中减少网格系统中单个div的宽度

SPAN不会在点击时关闭模式,尽管它们可以发送日志(log)等

将对象推送到数组会导致复制

按什么顺序接收`storage`事件?

使用线性插值法旋转直线以查看鼠标会导致 skip

如何使用puppeteer操作所有选项

REACT-本机错误:错误类型错误:无法读取未定义的容器的属性

用内嵌的含selenium的Java脚本抓取网站