- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
很多语言都问过这个问题,但 javascript 却没有。
Ruby 有方法 Enumerable#each_cons
看起来像这样:
puts (0..5).each_cons(2).to_a
# [[0, 1], [1, 2], [2, 3], [3, 4], [4, 5]]
puts (0..5).each_cons(3).to_a
# [[1, 2, 3], [2, 3, 4], [3, 4, 5]]
我怎样才能在 javascript 中为 Array
使用类似的方法?
最佳答案
这是一个函数(ES6+):
// functional approach
const eachCons = (array, num) => {
return Array.from({ length: array.length - num + 1 },
(_, i) => array.slice(i, i + num))
}
// prototype overriding approach
Array.prototype.eachCons = function(num) {
return Array.from({ length: this.length - num + 1 },
(_, i) => this.slice(i, i + num))
}
const array = [0,1,2,3,4,5]
const log = data => console.log(JSON.stringify(data))
log(eachCons(array, 2))
log(eachCons(array, 3))
log(array.eachCons(2))
log(array.eachCons(3))
您必须猜测结果数组的长度 (n = length - num + 1
),然后您可以利用 JavaScript 的 array.slice
迭代 n
次以获取所需的 block 。
关于javascript - 相当于 JavaScript 中 Ruby 的 each_cons,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57477912/
我一直在做a kata on CodeWars ,其摘要是取一个数字并返回 "Jumping!!" 如果数字在 1 以内(例如 2345、4323 , 7898) 和 "Not!!" 否则。所有单个数
下面抛出一个LocalJumpError records.find_each.each_cons(3) 是否有内置方法在内存友好的批处理中使用 each_cons? 编辑: 理想情况下,重叠会跨越批处
我只想对数组中的连续元素应用二元运算,例如: [1, 2, 3, 4].each_cons(2).map { |a, b| a.quo(b) } #=> [(1/2), (2/3), (3/4)] 这
我有一个具有以下模型的 Rails 5.1 应用程序: class Game > one: #{pair.first.id}, #{pair.first.name} - two: #{pair.sec
是否有与 Ruby 的 #each_cons 等效的 Pythonic? 在 Ruby 中你可以这样做: array = [1,2,3,4] array.each_cons(2).to_a => [[
ruby Ruby 有 each_cons可以这样使用 class Pair def initialize(left, right) @left = left
很多语言都问过这个问题,但 javascript 却没有。 Ruby 有方法 Enumerable#each_cons看起来像这样: puts (0..5).each_cons(2).to_a # [
在执行each block 时是否可以跳过n 次迭代? persons.each_cons(2) do |person| if person[0] == person[1] #SKIP 2
如何在 Clojure 中重写这段 Ruby 代码? seq = [1, 2, 3, 4, 5].each_cons(2) #=> lazy Enumerable of pairs seq.to_a
我是一名优秀的程序员,十分优秀!