我使用D3,尝试通过“ function(d)”比较值,但它们以单个布尔值形式出现,尽管我可以将它们转换为具有单个值的数组,但无法遍历它们进行比较。
当前,d.cause为true时更新'rect'的填充颜色,但是如果没有为true,则需要在消息中声明。我试图比较检查每个“ d3.selectAll('rect')”是否包含一个特定的类,但是由于它们作为单独的值出现,因此它不会告诉我它们是否全部包含该类。
let dataset = [
{
"scene": "IR0006426320",
"scene_start_time": "2018-02-05T15:03:30",
"chips": [
{
"chip": "2018.02.05.150",
"start_date": "2018-02-05T00:05:07",
"end_date": "2018-02-05T01:26:23",
"co_num": ["Potentially Unauthorized"
],
"cause": false
}
]
d3.select(".cause")
.on("click", function() {
rects.selectAll("rect")
.style("fill", function(d){
let newB = d.cause;
let newA = [];
if (newB === false){
newA.push(newB);
}
console.log(newA);
});
$( ".cause" ).toggleClass( "default viewCause" );
});`
我需要做的是比较“ d.cause”的所有值,如果ALL为false,则生成一条消息。
上面的代码在控制台中显示:
data.js:748 [false]
data.js:748 [false]
data.js:748 [false]
data.js:748 []
data.js:748 [false]
data.js:748 []
data.js:748 [false]
data.js:748 [false]
我想看的是:
[false,false,false,false,false,false]