相关疑难解决方法(0)

Javascript相当于Python的zip函数

有没有相当于Python的zip函数的javascript?也就是说,给定多个相等长度的数组会创建一对数组.

例如,如果我有三个如下所示的数组:

var array1 = [1, 2, 3];
var array2 = ['a','b','c'];
var array3 = [4, 5, 6];
Run Code Online (Sandbox Code Playgroud)

输出数组应该是:

var output array:[[1,'a',4], [2,'b',5], [3,'c',6]]
Run Code Online (Sandbox Code Playgroud)

javascript python transpose functional-programming

191
推荐指数
8
解决办法
6万
查看次数

在JavaScript中将数组迭代为一对(当前,下一个)

Python中将列表迭代为对(当前,下一个)的问题中,OP有兴趣将Python列表迭代为一系列current, next对.我有同样的问题,但我想用最干净的方式在JavaScript中完成,也许使用lodash.

使用简单的for循环很容易做到这一点,但它感觉不是很优雅.

for (var i = 0; i < arr.length - 1; i++) {
  var currentElement = arr[i];
  var nextElement = arr[i + 1];
}
Run Code Online (Sandbox Code Playgroud)

Lodash几乎可以做到这一点:

_.forEach(_.zip(arr, _.rest(arr)), function(tuple) {
  var currentElement = tuple[0];
  var nextElement = tuple[1];
})
Run Code Online (Sandbox Code Playgroud)

在最后一次迭代中,这nextElement将是一个微妙的问题undefined.

当然,理想的解决方案只是一个pairwise只在必要时循环的lodash功能.

_.pairwise(arr, function(current, next) {
  // do stuff 
});
Run Code Online (Sandbox Code Playgroud)

是否有任何现有的库已经这样做了?或者是否有另一种很好的方法在JavaScript中进行成对迭代我还没有尝试过?


澄清:如果arr = [1, 2, 3, 4],那么我的pairwise函数将迭代如下:[1, 2], …

javascript iteration lodash

14
推荐指数
5
解决办法
8648
查看次数

如何在JavaScript中交替合并两个字符串?

给定输入str1为“ abc”,给定str2为“ def”,输出应为adbecf,给定str1 =“ ab”且str2 =“ def”的输出应为adbef

我的输出是:

merge('abc','def')“ adbecfNaN”

merge('ab','def')“ adbeundefinedf”

我一直在尝试过滤undefined和NAN,但是它不起作用。

这是我的代码:

function merge (str1, str2) {

  var a = str1.split("").filter(Boolean);

  var b = str2.split("");

  var mergedString = '';


  for(var i = 0; i <= a.length && i <= b.length; i++) {

       mergedString +=  a[i] + b[i];

    }

    return mergedString;

}
Run Code Online (Sandbox Code Playgroud)

javascript string merge

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

如何将两个数组压缩为一个包含值的字符串数组

例如,如果我有两个看起来像这样的数组:

var array1 = ['a','b'];
var array2 = [1, 1];
Run Code Online (Sandbox Code Playgroud)

输出数组应该是:

var newArray = ['a:1', 'b:1']
Run Code Online (Sandbox Code Playgroud)

javascript arrays

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

如何将一个数组的第一个元素与第二个数组的第一个元素等组合起来

我有两个数组。

第一个数组包含日期

['2020-03-17,2020-03-19,2020-03-18,2020-03-12']
Run Code Online (Sandbox Code Playgroud)

第二个数组包含时间,该数组由两个小时的时间段组成。

['11:00', '13:00','15:00', '17:00','19:00', '21:00', '23:00']
Run Code Online (Sandbox Code Playgroud)

最后,我需要结果如下所示:

['2020-03-17,11:00,13:00','2020-03-19,15:00,17:00','2020-03-18,19:00,21:00']
Run Code Online (Sandbox Code Playgroud)

javascript arrays

3
推荐指数
2
解决办法
2773
查看次数

如何在JavaScript中将两个线性数组合并为二维数组?

例如:

var array1 = ["one", "two", "three"];
var array2 = ["1", "2", "3"];
Run Code Online (Sandbox Code Playgroud)

如何将这些数组转换为var array = [["one", "1"], ["two", "2"], ["three", "3"]]

javascript arrays

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