gpt4 book ai didi

javascript - js中如何内联声明变量?

转载 作者:行者123 更新时间:2023-12-02 22:50:39 25 4
gpt4 key购买 nike

我想内联声明变量,并在同一行中使用它。像:

(var arr = ['1', '2']).forEach(a => alert(arr))

但它给了我错误(意外的标记“var”)。那么js中可以吗?

编辑:这只是一个例子。我真正的用例是这样的:

var arr = [{id: 1, tags: [1, 2]}, {id: 2, tags: [5,6]}]
(var f = arr.find(item => item.id == 1)).tags.map(t => t + f.id)

我想避免单独声明,因为我正在创建一个链接库,以便所有内容都应该在一行中链接在一起(但是以干净的方式)

最佳答案

这是不可能的,没有syntax for this在 JavaScript 中。

I want to avoid separate declaration because i'm creating a chaining library so that every thing should be chained together in 1 line (in a clean way however)

为此,请使用 IIFE :

(f => f.tags.map(t => t + f.id))(arr.find(item => item.id == 1)).forEach(a => alert(a));

如果您希望顺序不颠倒,请在链接库中提供一个接受回调的函数 - 然后用户可以多次引用回调中的值,这是最接近“内联声明”的值:

pipe(arr.find(item => item.id == 1), f => f.tags.map(t => t + f.id)).forEach(a => alert(a));

// or with destructuring:
pipe(arr.find(item => item.id == 1), ({id, tags}) => tags.map(t => t + id)).forEach(a => alert(a));

另请参阅How to simulate let expressions in JavaScript?How to use let declarations as expressions?一些背景知识。

关于javascript - js中如何内联声明变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58189691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com