【问题标题】:how to print result of _.zip.apply()如何打印 _.zip.apply() 的结果
【发布时间】:2014-04-22 14:46:29
【问题描述】:

我是第一次尝试 underscore.js,并且想将我的行数组转换为列。因为,我需要用二维数组加入它

我在这里查看了讨论,发现可以通过_.zip.apply() 完成。但是,当我尝试它时,它没有显示任何结果

  Final = my 2D array
  dtr = ['s', 's', 'n'];

我需要将 dtr 与 final 连接起来,这样 dtr 中的每个元素都是 final 数组中的列标题:

  _.zip.apply(dtr, Final)

但它没有显示任何结果

预期结果:

我的二维数组:-

并且 dtr 数组需要在 2d 数组的顶部。希望很清楚。

【问题讨论】:

  • 如果您提供有效的代码和格式正确的问题,人们将能够更好地帮助您。
  • 另外,预期的输出是什么?
  • @thefourtheye 请检查预期结果
  • @user3050590 目前还不清楚。能否请您也显示二维数组?
  • @acjay dtr 是一维数组,如问题所示,final 是我从 csv 文件中读取的二维数组。休息,请检查类似于屏幕截图的预期结果。

标签: javascript underscore.js apply


【解决方案1】:

如果您希望 dtr 数组成为 2d 数组中的第一个数组。可以这样做:

var a = ['s','s','n'];
var b = [[50, 50, 50], 
         [50 , 5, 5],
         ['hello', 'beta', 'gama']];

var result = [a].concat(b);

结果:

[['s','s','n'],
 [50, 50, 50], 
 [50 , 5, 5],
 ['hello', 'beta', 'gama']];

编辑

var a = ['s','s','n'];
var b = [[50, 50, 'hello'], 
         [50,  5, 'beta'], 
         [50,  5, 'gama']];

var result = _.map(_.zip(a, b), _.flatten) 
// if native map support _.zip(a, b).map(_.flatten)

结果:

[['s', 50, 50, 'hello'], 
 ['s', 50,  5, 'beta'], 
 ['n', 50,  5, 'gama']];

【讨论】:

  • 我这样做了,得到了一个类似匿名函数的错误[underscore-min.js]。此外,我的二维数组的形式类似于案例 1 中的 b,但是,我不想转置这个数组,我想转置数组 a。
  • 我忘记在 concat 调用之前将 a 数组包装到 [a] 中。虽然它仍然是错误的格式。让我们看看...
  • 谢谢,我将数组包装成方括号并修复。
【解决方案2】:

我的答案包含两种情况,这取决于数组 b 的组织方式。

案例一:

var a = ['s','s','n'];
var b = [[50, 50, 'hello'], 
         [50,  5, 'beta'], 
         [50,  5, 'gama']];

_.zip(a, b).map(_.flatten) // -> [Array[4], Array[4], Array[4]]

案例二

var a = ['s','s','n'];
var c = [[50, 50, 50], 
         [50 , 5, 5],
         ['hello', 'beta', 'gama']];
var b = _.zip.apply(null, c); // content equals to case one variable b

_.zip(a, b).map(_.flatten) // -> [Array[4], Array[4], Array[4]]

结果:

[['s', 50, 50, 'hello'],
 ['s', 50,  5, 'beta'],
 ['n', 50,  5, 'gama']]

【讨论】:

    猜你喜欢
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    • 2021-12-13
    • 1970-01-01
    • 2016-05-31
    • 1970-01-01
    • 2016-11-22
    相关资源
    最近更新 更多