Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 将每个循环嵌套在Svelte中的数组上-如何设置唯一的id/键?_Arrays_Foreach_Each_Svelte_Svelte 3 - Fatal编程技术网

Arrays 将每个循环嵌套在Svelte中的数组上-如何设置唯一的id/键?

Arrays 将每个循环嵌套在Svelte中的数组上-如何设置唯一的id/键?,arrays,foreach,each,svelte,svelte-3,Arrays,Foreach,Each,Svelte,Svelte 3,我想用下面的形式呈现一个数组,每个数组有两个嵌套的循环 const arr = [ [ a, b, c ], [ d, e, f ], [ g, h, i ] ] {#each arr as row, rowIndex} <div class="row"> {#each row as cell, cellIndex ($arr[rowIndex][cellIndex]) } <div

我想用下面的形式呈现一个数组,每个数组有两个嵌套的循环

const arr = [
    [ a, b, c ],
    [ d, e, f ],
    [ g, h, i ]
]

{#each arr as row, rowIndex}
    <div class="row">
        {#each row as cell, cellIndex ($arr[rowIndex][cellIndex]) }
            <div class="cell"> {cell} </div>
        {/each}
    </div>
{/each}

为什么不使用
cellIndex
作为内部
#each
中的键,而不是
$arr[rowIndex][cellIndex]
?这是因为密钥只需要在一个特定的
#每个
中是唯一的,而每个嵌套的
#每个
最终都是唯一的。

你的意思是这样吗
{#每行作为单元格,cellIndex(cellIndex)}
也没有预期效果-请参见此REPL->单击的元素应消失,然后右侧的元素应向左移动。就像在第一个版本中实现的一样(仅使用唯一的单元格内容)->您可以将每个单元格的id添加到
arr
,无论移除后的位置如何。因此id可以是其行中的初始单元格索引。然后,这些单元格可能是像
{color:#FFFFFF',index:0}
这样的对象。然后,您可以使用此索引属性作为键。如果“object arr”的创建可以通过包含id内容对象的派生存储完成,但仍然不能达到预期效果->(我假设这是因为derivedArr已呈现,但删除发生在“basic”arr上),则可能是一种解决方案。我最初也想到了派生,但它不能工作。但是您可以将索引添加到原始项中。是的,当修改原始项(或原始数组的“未链接”副本)时,它可以工作,但这并不能真正解决问题,因为不再与原始数组连接,并且反应性也会丢失
rowIndex.toString().concat(cellIndex.toString())
""+rowIndex+cellIndex
+(""+rowIndex+cellIndex)
$arr[rowIndex][cellIndex]+rowIndex+cellIndex