Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何实现Javascript数组索引比较?_Javascript_Arrays - Fatal编程技术网

如何实现Javascript数组索引比较?

如何实现Javascript数组索引比较?,javascript,arrays,Javascript,Arrays,我有一个基于单元格内容的表格。单元格内容仅限于特定数据,因此我创建了一个数组。如果我引用数组的索引,我可以设置单元格的样式: var greencell = ["item1", "item2", etc] var cells = document.getElementById("mytable").getElementsByTagName("td"); for (var i = 0; i < cells.length; i++) { if (cells[i].innerHTML ==

我有一个基于单元格内容的表格。单元格内容仅限于特定数据,因此我创建了一个数组。如果我引用数组的索引,我可以设置单元格的样式:

var greencell = ["item1", "item2", etc]
var cells = document.getElementById("mytable").getElementsByTagName("td");
for (var i = 0; i < cells.length; i++) {
  if (cells[i].innerHTML == greencell[0]) {
    cells[i].style.backgroundColor = "#80ff80";
  }
}
var greencell = ["item1", "item2", etc]

var cells = document.getElementById("mytable").getElementsByTagName("td");
var j = 0; 
for (var i = 0; i < cells.length; i++) {
    for (j = 0; j < greencell.length; j++) {
        if (cells[i].innerHTML == greencell[j]) {
            cells[i].style.backgroundColor = "#80ff80";
        }
    }
}
var greencell=[“项目1”、“项目2”等]
var cells=document.getElementById(“mytable”).getElementsByTagName(“td”);
对于(变量i=0;i
但是,我需要访问整个阵列。当我设置比较
==
greencell时,不应用样式。我错过了什么?我的做法正确吗?循环通过类似于
单元格的数组
循环,并设置循环结果的比较?我现在脑子里乱七八糟的


谢谢

您需要在阵列中循环:

var greencell = ["item1", "item2", etc]
var cells = document.getElementById("mytable").getElementsByTagName("td");
for (var i = 0; i < cells.length; i++) {
  if (cells[i].innerHTML == greencell[0]) {
    cells[i].style.backgroundColor = "#80ff80";
  }
}
var greencell = ["item1", "item2", etc]

var cells = document.getElementById("mytable").getElementsByTagName("td");
var j = 0; 
for (var i = 0; i < cells.length; i++) {
    for (j = 0; j < greencell.length; j++) {
        if (cells[i].innerHTML == greencell[j]) {
            cells[i].style.backgroundColor = "#80ff80";
        }
    }
}
var greencell=[“项目1”、“项目2”等]
var cells=document.getElementById(“mytable”).getElementsByTagName(“td”);
var j=0;
对于(变量i=0;i
如果要为每个项目使用不同的颜色,可以使用数组:

var colors = ["#ff0000", "#00ff00", "#0000ff"];
var cells = document.getElementById("mytable").getElementsByTagName("td");
var j = 0; // You shouldn't redeclare the variable each iteration
for (var i = 0; i < cells.length; i++) {
    for (j = 0; j < greencell.length; j++) {
        if (cells[i].innerHTML == greencell[j]) {
            cells[i].style.backgroundColor = colors[j];
        }
    }
}
var colors=[“ff0000”、“00ff00”、“0000ff”];
var cells=document.getElementById(“mytable”).getElementsByTagName(“td”);
var j=0;//您不应该在每次迭代中重新声明变量
对于(变量i=0;i
您需要在阵列中循环:

var greencell = ["item1", "item2", etc]
var cells = document.getElementById("mytable").getElementsByTagName("td");
for (var i = 0; i < cells.length; i++) {
  if (cells[i].innerHTML == greencell[0]) {
    cells[i].style.backgroundColor = "#80ff80";
  }
}
var greencell = ["item1", "item2", etc]

var cells = document.getElementById("mytable").getElementsByTagName("td");
var j = 0; 
for (var i = 0; i < cells.length; i++) {
    for (j = 0; j < greencell.length; j++) {
        if (cells[i].innerHTML == greencell[j]) {
            cells[i].style.backgroundColor = "#80ff80";
        }
    }
}
var greencell=[“项目1”、“项目2”等]
var cells=document.getElementById(“mytable”).getElementsByTagName(“td”);
var j=0;
对于(变量i=0;i
如果要为每个项目使用不同的颜色,可以使用数组:

var colors = ["#ff0000", "#00ff00", "#0000ff"];
var cells = document.getElementById("mytable").getElementsByTagName("td");
var j = 0; // You shouldn't redeclare the variable each iteration
for (var i = 0; i < cells.length; i++) {
    for (j = 0; j < greencell.length; j++) {
        if (cells[i].innerHTML == greencell[j]) {
            cells[i].style.backgroundColor = colors[j];
        }
    }
}
var colors=[“ff0000”、“00ff00”、“0000ff”];
var cells=document.getElementById(“mytable”).getElementsByTagName(“td”);
var j=0;//您不应该在每次迭代中重新声明变量
对于(变量i=0;i
您可以使用检查
innerHTML
是否与
greencell
的任何元素匹配:

if (greencell.indexOf(cells[i].innerHTML) !== -1) {
    cells[i].style.backgroundColor = "#80ff80";
}
if(greencell.indexOf(cells[i].innerHTML)!=-1){
单元格[i].style.backgroundColor=“#80ff80”;
}
您可以使用检查
innerHTML
是否与
greencell
的任何元素匹配:

if (greencell.indexOf(cells[i].innerHTML) !== -1) {
    cells[i].style.backgroundColor = "#80ff80";
}
if(greencell.indexOf(cells[i].innerHTML)!=-1){
单元格[i].style.backgroundColor=“#80ff80”;

}
对于更面向ES6的解决方案,您可以将
HTMLCollection
作为
数组进行迭代,然后根据单元格的文本确定样式

HTML:


对于更面向ES6的解决方案,您可以将
HTMLCollection
作为
数组进行迭代,然后根据单元格的文本确定样式

HTML:


“每次迭代重新声明变量”没有意义
var
是解析时的事情,而迭代是运行时的事情。谢谢@balint,我正朝这个方向走,但语法不正确。@Ryan是的,对不起,我还在用其他语言思考。“每次迭代都重新声明变量”没有意义
var
是一种解析时的东西,而迭代是一种运行时的东西。谢谢@balint我正朝那个方向走,但语法不正确。@Ryan对,对不起,我还在用其他语言思考。谢谢Ryan,这很好!我发现这是编码中最具挑战性的方面,有很多方法可以找到解决方案。谢谢Ryan,这很好!我发现这是编码中最具挑战性的方面,有很多方法可以找到解决方案。