2016-11-28 5 views
0
List<String> checkLength(List<String> input) { 
    if (input.length > 6) { 
    var tempOutput = input; 
    while (tempOutput.length > 6) { 
     var difference = (tempOutput.length/6).round() + 1; 
     for (int i = 0; i < tempOutput.length - 1; i + difference) { 
     tempOutput.removeAt(i); //Removing the value from the list 
     } 
    } 
    return tempOutput; //Return Updated list 
    } else { 
    return input; 
    } 
} 

一時的なリストから何かを削除しようとしています。なぜそれは機能しませんか?私はそれがどのように修正されているのかわかりませんが、私が解決した他の問題でも私は同様のアプローチを使用していました。私は解決策を理解できませんでした。 これをDartの固定長リストにする理由は何ですか?

は、あなたがそれによってに tempOutputを宣言

var tempOutput = new List<String>.from(input);

としてそれを初期化することによりtempOutputは、固定長のリストがないことを確認することができダートリンク

Code in Dart

+0

リンクされたスクリーンショットではなく、質問に直接テキストとしてコードを追加してください。 –

+0

どのようにリストを作成しますか? 'new List(6)'を実行すると、6つのエントリを持つ固定長リストになります。 –

+0

checkLength(arrayToSingularElements(toColorBlockArray(input)))。join( ''); –

答えて

0

で利用可能なコードを探しますinputの可変コピーであること。

あなたのforループ更新ステップでi + differenceを実行しているので、あなたのプログラムに別のバグがあるようですが、i += differenceと思っています。

+0

'var tempOutput = input.toList()'は似ています。 –

0

このコードを試してもらえますか?

List<String> checkLength(List<String> input) { 
    if (input.length > 6) { 
    var tempOutput = input; 
    while (tempOutput.length > 6) { 
     var difference = (tempOutput.length/6).round() + 1; 
     for (int i = 0; i < tempOutput.length - 1; i = i + difference) { 
     tempOutput.removeAt(i); //Removing the value from the list 
     } 
    } 
    return tempOutput.toList(); //Return Updated list 
    } else { 
    return input.toList(); 
    } 
} 

注:あなたは、I = 1との違い= 1、そして「tempOutput.removeAt(i)が」」の値を削除します最初の反復で、たとえば言うと同じ値である「私は違いを+」使用同じ位置を削除しようとしている2番目の反復で再度「固定長から削除できません」というメッセージが表示されます

ここでiの値は、反復処理ごとに増減する必要があります。あなたのforループには欠けています。

+0

うん、私はちょうどそれを自分で考え出し、あなたと同じ解決策になった。 –

+0

ありがとう@LukeMuller、これが機能していると感じたら、答えとして受け入れることができます。 –

0

@ harry-terkelsenの答えは、固定長問題の解決に非常に役立ちました。

私のアルゴリズムについて質問していた人のために: 違いはいくつかを削除したいときに文字の量をスキップすることです。また、私はfor-loopを変更しなければなりませんでした。

修正がここにあります! https://github.com/luki/wordtocolor/blob/master/web/algorithms.dart

私を理解していただきありがとうございます!

+0

ああ、私はちょうど@BHUVANESH MOHANKUMARが問題のために同じ解決策を得たことを知った。 –

+0

ありがとう@ルークミュラー –

関連する問題