我尝试使用Json文件中的内容填充多维数组。
问题是,我无法更新数组中的内容:
if(j>i && hoursYy == hoursY && secondsX == secondsXx){
wocheArray[i].count = wocheArray[i].count + 1;
}
我的目标是,每次在我的JSON文件中找到重复内容时,“count”都会计数。我无法在网上找到答案。
以防万一,这是整个代码:
var myweek;
var x;
var y;
var id;
var count;
var wocheArray = [];
function preload(){
myweek = loadJSON("data/data.json");
}
function setup(){
createCanvas(windowWidth, windowHeight);
background(0);
//SAVE IN WOCHEARRAY
for (var i = 0; i < myweek.woche.length; i++) {
hoursY = myweek.woche[i].stunden;
secondsX = myweek.woche[i].sekunden;
for (var j=0; j< myweek.woche.length; j++){
hoursYy = myweek.woche[j].stunden;
secondsXx = myweek.woche[j].sekunden;
if(j>i && hoursYy == hoursY && secondsX == secondsXx){
wocheArray[i].count = wocheArray[i].count + 1;
}
else {
x = myweek.woche[i].stunden;
y = myweek.woche[i].sekunden;
id = myweek.woche[i].person;
count = 0;
}
wocheArray[i] = {x, y, count, id};
}
}
console.log(wocheArray);
}
答案 0 :(得分:0)
如果您更好地格式化代码,您将看到
wocheArray[i] = {x, y, count, id};
在if else
之外。所以wocheArray [i]在每个循环结束时被覆盖。
答案 1 :(得分:0)
问题在于:
function validateform() {
var textarea = $('#myval').val();
var result = "no";
$("#test-ul li").each( function()
{
console.log($(this).text());
if ($(this).text() == textarea)
{
result = "yes";
}
}
);
console.log(result);
if (result == "yes")
{
$('#valid').text( "Correct!");
}
else
{
$('#valid').text("Incorrect!");
}
}
$(document).ready(function()
{
$("#validate").click(function(){validateform();});
}
) ;
`
如果你检查你的代码,你会发现这部分是最重要的。
考虑你的情况:如果找到重复。
然后你的for循环会做什么: -
1。)设置wocheArray[i] = {x, y, count, id};
2。)[跳至如果条件,检查程序在哪里]
var count = 0;
3)在else块中,它将再次设置//IF match found (at j = 2 location, and i = 1)
//then what happen is :
if(2>1 && hoursYy == hoursY && secondsX == secondsXx){
wocheArray[1].count = wocheArray[1].count + 1;
// from here the count of wocheArray[1] would be increased by 1, Suppose 1.
}
4)您再次尝试设置count = 0;
//的值,现在将wocheArray [1]计数设置为0.
因此,从这里,您可以看到您正在更新值或覆盖它们,从而产生不良结果。
您不应在wocheArray[1] = {x, y, count, id};
您必须在else块内调用它才能使其正常工作。
wocheArray[i] = {x, y, count, id};
但是,我很好奇在其他块中使用else{
x = ....
....
....
count = 0;
wocheArray[i] = {x, y, count, id};
}
,因为它在这里什么也没做,而{block}里面的count = 0;
只是重新初始化计数变量,这会浪费内存或不好实践。根据显示的代码示例。