0

これは未完成であることを覚えておいてください。私が持っている唯一の質問は、console.log がこの出力を生成する理由です。

/>B /* これは私が期待していたことです */

/>BD /* 2 番目の出力は ">/D" だけだと思っていましたが、どうやって >/"BD" になったのかわかりません */

graphArray = ["4","A","B","C","D","A-B","B-D","B-C","C-D"];
pointsArray = [];
linesArray = [];
nodes = graphArray[0];
for (i = 1; i < graphArray.length; i++) {
    if (i <= nodes) {
    pointsArray.push(graphArray[i]);
    }
    if (i > nodes) {
        linesArray.push(graphArray[i]);
    }
}
nextpoint = pointsArray[0];
patt = new RegExp(/-.*/);
patt2 = new RegExp(nextpoint + "-");
for (i = 0; i < linesArray.length; i++) {
    x = 0;
    while (x < linesArray.length) {
        if (linesArray[x].replace(patt,"") === nextpoint) {
            nextpoint = linesArray[x].replace(patt2,"");
            console.log(nextpoint);
        }
        x++;
    }
}

編集:を叩いて、私には遅すぎたに違いありません。それを見逃したなんて信じられません。ご指摘ありがとうございます。解決しました。

4

1 に答える 1

1

あなたpatt2 = new RegExp(nextpoint + "-");はループの中にいるべきです

for (i = 0; i < linesArray.length; i++) {
    x = 0;
    while (x < linesArray.length) {

        patt2 = new RegExp(nextpoint + "-");
        if (linesArray[x].replace(patt,"") === nextpoint) {
            nextpoint = linesArray[x].replace(patt2,"");
            console.log(nextpoint);
        }
        x++;
    }
}
于 2013-11-05T06:32:02.213 に答える