元の質問
forループに似た動作を可能にするノックアウトのバインディングを持っている、または知っている人はいますか? foreach を自分のやりたいようにすることはできますが、そのようにする必要がなければいいと思います。
編集 2
ユーザーの選択に基づいてテーブル行を作成しようとしています。x が配列の長さである x 行が必要な場合もあれば、n 個の配列を表示するために必要な最大行数を x が表す場合もあります。
例: image1 は、サイズが異なる 4 つの異なる配列に基づいて構築されます。image2 は同じ配列から構築され、この場合は 2 倍になります。
<div data-bind="if: selectedTab()">
<table>
<thead>
<tr>
<td>
<div class="a-i-post-All"></div>
</td>
<!-- ko foreach:$root.selectedTab().races-->
<td>
<input type="checkbox" />
</td>
<!-- /ko -->
</tr>
</thead>
<tbody data-bind="foreach: selectedTab().runners"> // <-- This is an empty array created by the max number of Runners in the selectedTabs array of Races
<tr>
<td>
<div class="a-i-post"></div>
</td>
<!-- ko foreach:$root.selectedTab().races-->
<td>
<!-- ko if: Runners.length > $parentContext.$index()-->
<input type="checkbox" />
<!-- /ko -->
</td>
<!-- /ko -->
</tr>
</tbody>
上記は正常に機能し、必要なものを作成しますが、selectedTab.runners を数値から空の配列に変換して、行を作成するために n 回ループさせる必要はありません。私は提案を受け付けています。注:この質問を最初に投稿した時点で、このコードを大幅に修正し、最初の質問に関連する発生は 1 つだけになりました。