下划线_.object功能不起作用

时间:2018-04-19 05:29:26

标签: javascript underscore.js

我试过下划线_.object函数,但我只得到未定义的值。

我的代码示例:

var arr = [['moe', 'larry', 'curly'], [30, 40, 50]];
var str=JSON.stringify(array);
str.substring(1,str.length-1);
_.object(str.substring(1,str.length-1));

仅结果未定义

我找不到任何人帮助我的错误......

...谢谢

2 个答案:

答案 0 :(得分:1)

_.object将两个数组作为参数。第一个用作对象的键,第二个用作相应键的值。

您需要通过apply在阵列上调用方法,如下所示:



var arr = [
  ['moe', 'larry', 'curly'],
  [30, 40, 50]
];

console.log(_.object.apply(null, arr));

<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.0/underscore-min.js"></script>
&#13;
&#13;
&#13;

或者如果您的浏览器支持ES6语法,请使用spread syntax

&#13;
&#13;
var arr = [
  ['moe', 'larry', 'curly'],
  [30, 40, 50]
];

console.log(_.object(...arr));
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.0/underscore-min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

如果你想要的是{moe: 30, larry: 40, curly: 50}
你需要做_.object(arr[0], arr[1]);

var str=JSON.stringify(array);的上述情况中,str等于"[["moe","larry","curly"],[30,40,50]]"

P.S:.substring方法返回一个新字符串,不会更改原始字符串。