小编pil*_*ard的帖子

有没有办法在 React 中使用 ID 而不使用 className 来设置元素的样式?

我正在将一个旧网站转换为 React,并且不想更改之前编码的所有 CSS 文件。目前许多元素都是通过使用 id 设置样式的。有没有一种方法可以className={styles["#topBar"]}正确设置样式,而不必删除CSS 文件夹中的#并将其替换为 a ?.

css lamp reactjs

8
推荐指数
1
解决办法
2万
查看次数

“for wait of”的控制流程是怎样的?

(英语不是我的母语,所以如果您发现任何英语,请提前原谅我的英语)

此时,我对 Promises 和 Async wait 函数非常满意,我也知道如何使用 Promise.all (它只是等待内部的所有承诺首先解析,然后从所有承诺中提取值,然后返回一个数组将 .then 函数与这些值一起使用。)

现在我想知道 for wait 在幕后是如何工作的。

我刚刚写了这段代码:

async function f() {

  let p1 = new Promise(function (r) {
    setTimeout(r, 3000, 1)
  })

  let p2 = new Promise(function (r) {
    setTimeout(r, 2000, 2)
  })

  let p3 = new Promise(function (r) {
    setTimeout(r, 1000, 3)
  })

  let arrayOfPromises = [p1, p2, p3];

  for await (let p of arrayOfPromises) {
    let data = await p;
    console.log(data)
  }
}

f();
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,当它命中第一次迭代时会发生什么,它将命中await关键字,并且await立即返回一个待处理的承诺,那么下面的代码在技术上是否在每次迭代中评估为待处理的承诺?

  {
    let data …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous for-loop promise async-await

6
推荐指数
1
解决办法
2875
查看次数

将 Pair 数组转换为 2 个单独的数组而不进行迭代

我有一系列看起来像这样的对[[x,y], [x,y] ... ]。我想将其格式化为一个对象,其中值是 x 和 y 值的数组,如下所示{keys: [x1, x2, x3 ...], values: [y1, y2, y3 ... ]}

是否有任何数组/对象操作可以完成此操作而无需迭代原始列表?

javascript arrays object

3
推荐指数
1
解决办法
101
查看次数

选择链接不适用于 array.length === x

let products;

if (products?.length !== 0) {
  console.log('true')
}
Run Code Online (Sandbox Code Playgroud)

let products;

if (products && products.length !== 0) {
  console.log('true')
}
Run Code Online (Sandbox Code Playgroud)

如果没有产品数组,示例 1 仍将运行 if 语句。可选链不应该检查产品是否存在,然后检查长度,最后检查长度为 0 吗?

例子。如果产品不存在,2 将不会运行。

javascript

3
推荐指数
1
解决办法
2030
查看次数

JS 从对象数组中获取所有对象键的并集

我有以下对象数组:

var all = [
{f1: "v1", f2: "v2"},
{f1: "v1", f2: "v2", f3: "v3"},
{f1: "v1", f2: "v2", f3: "v3", f4: "v4"},
{f1: "v1", f2: "v2", f3: "v3", f4: "v4", fn: "vn"}
];
Run Code Online (Sandbox Code Playgroud)

期望的输出:

[f1, f2, f3, f4, f5, ...., fn];
Run Code Online (Sandbox Code Playgroud)

目前使用:

all.reduce((sum, item) => ([...new Set([...sum, ...Object.keys(item)])]), []);
Run Code Online (Sandbox Code Playgroud)

工作示例:codepen

任何使用 es6 或任何新的 js 功能的建议,以获得更好的性能。

javascript arrays object ecmascript-6

0
推荐指数
1
解决办法
263
查看次数

如何将对象值展平为一维数组

我有一个这样的对象:

const obj = {a: [1,2,3], b: [4,5,6]}
Run Code Online (Sandbox Code Playgroud)

我期望得到数组:[1, 2, 3, 4, 5, 6]

这是我使用的函数,但它只给我最后一个数组: [4, 5, 6]

for (const property in obj) {
    var allData = []
    allData.push(...obj[property])
}
Run Code Online (Sandbox Code Playgroud)

javascript

0
推荐指数
1
解决办法
73
查看次数

查找不为空的对象值的长度

我有一个对象,例如,

let obj = {
  name: '',
  age: 16, 
  address: '', 
  city: '', 
  pin: 4564
}
Run Code Online (Sandbox Code Playgroud)

我想要具有值而不是 0 或未定义或“”的元素的长度。我的 obj 有 2 个具有值的元素(年龄和 pin),所以我希望 obj 的长度为 2

javascript

-4
推荐指数
1
解决办法
115
查看次数