Javascript 如何使派生变量变细?

Javascript 如何使派生变量变细?,javascript,svelte,svelte-3,svelte-store,Javascript,Svelte,Svelte 3,Svelte Store,我有两家商店: export const custom_items = writable([]); export const another_items = writable([]); 它们都有对象数组,对象看起来是这样的(当然,值是不同的): 我想创建自己的派生变量,它将保存两个存储区“自定义项”和“其他项”的总量。我该怎么做 我只能通过此代码来完成,但它不是被动的: function get_total_amount() { let total = 0; get(custo

我有两家商店:

export const custom_items = writable([]);
export const another_items = writable([]);
它们都有对象数组,对象看起来是这样的(当然,值是不同的):

我想创建自己的派生变量,它将保存两个存储区“自定义项”和“其他项”的总量。我该怎么做

我只能通过此代码来完成,但它不是被动的:

function get_total_amount() {
    let total = 0;
    get(custom_items).every((item) => {
        total += item.amount;
    })
    get(another_items).every((item) => {
        total += item.amount;
    })
    return total;
}

一定有更好的方法,我听说过派生存储,但我不知道在这种情况下如何使用它。

您可以设置一些局部变量/函数,如:

<script>

let total_one = 0;

let total_two = 0;

$: total_store_one = get(custom_items).every((item) => {
        total_one += item.amount;
    })
$: total_store_two = get(another_items).every((item) => {
        total_two += item.amount;
    })
$: total = total_store_one + total_store_two;
</script>


设total_one=0;
设total_two=0;
$:total_store_one=get(自定义项目)。every((项目)=>{
总金额=项目金额;
})
$:total_store_two=获取(另一个项目)。every((项目)=>{
总金额=项目金额;
})
$:总计=总门店数+总门店数;
并在代码中使用这些变量,如:

<p>Total from store one: {total_store_one}</p>
<p>Total from store two: {total_store_two}</p>
<p>Total: {total}</p>
一号店总计:{Total_store_one}

来自存储2的总计:{Total_store_two}

总计:{Total}


您可以设置一些局部变量/函数,如:

<script>

let total_one = 0;

let total_two = 0;

$: total_store_one = get(custom_items).every((item) => {
        total_one += item.amount;
    })
$: total_store_two = get(another_items).every((item) => {
        total_two += item.amount;
    })
$: total = total_store_one + total_store_two;
</script>


设total_one=0;
设total_two=0;
$:total_store_one=get(自定义项目)。every((项目)=>{
总金额=项目金额;
})
$:total_store_two=获取(另一个项目)。every((项目)=>{
总金额=项目金额;
})
$:总计=总门店数+总门店数;
并在代码中使用这些变量,如:

<p>Total from store one: {total_store_one}</p>
<p>Total from store two: {total_store_two}</p>
<p>Total: {total}</p>
一号店总计:{Total_store_one}

来自存储2的总计:{Total_store_two}

总计:{Total}

使用:

export const custom_items=可写([]);
export const other_items=可写([]);
const get_total=items=>items.flat().map(x=>x.amount).reduce((t,x)=>t+x,0)
导出常量总计=导出(
[自定义项,其他项],//deps
items=>get_total(items)/[…values]=>派生的_值
)
使用:

export const custom_items=可写([]);
export const other_items=可写([]);
const get_total=items=>items.flat().map(x=>x.amount).reduce((t,x)=>t+x,0)
导出常量总计=导出(
[自定义项,其他项],//deps
items=>get_total(items)/[…values]=>派生的_值
)