小编cyb*_*xae的帖子

缩写 UUID

当 id 是我们对目标的全部了解时,将 UUID 缩写为在用户界面中的按钮中使用的好方法是什么?

GitHub 似乎通过从开头取 7 个字符来缩写提交 ID。例如b1310ce6bc3cc932ce5cdbe552712b5a3bdcb9e5,在按钮中会显示为b1310ce。虽然不完美,但这个较短的版本足以在显示的上下文中看起来独一无二。我正在寻找适用于 UUID 的类似解决方案。我想知道 UUID 的某些部分是否比其他部分更随机。

最直接的选择是在破折号处拆分并使用第一部分。然后 UUID42e9992a-8324-471d-b7f3-109f6c7df99d将缩写为42e9992a. 我能想出的所有解决方案似乎都同样随意。也许有一些我没有想到的开箱即用的用户界面设计解决方案。

user-interface uuid user-experience

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

捕获 JavaScript 迭代器的返回值

考虑以下迭代器。它生成字符串“foo”和“bar”,然后返回“quux”作为返回值。我可以用来Array.from从迭代器中提取收益,但如果我这样做,我将无法读出返回值。返回值不再由迭代器返回,因为Array.from它已经作为协议的一部分接收(并丢弃?)。

const iterator = (function* () {
  yield 'foo'
  yield 'bar'
  return 'quux'
})()
const [foo, bar] = Array.from(iterator)
const quux = // ???
Run Code Online (Sandbox Code Playgroud)

Array.from我能想到的唯一解决方案是编写一个间谍程序来监视迭代并将返回值存储到预定义变量中作为丢弃返回值之前的副作用。是否有更好的替代方法来访问返回值?

let quux
const spy = function* (i) { /* extract return value from i and store it to quux */ }
const [foo, bar] = Array.from(spy(iterator))
Run Code Online (Sandbox Code Playgroud)

javascript iterator

5
推荐指数
1
解决办法
899
查看次数