Lodash - 使用_.keys或_keys进行Unshift不工作

时间:2017-10-31 16:00:06

标签: lodash

使用如下对象:

var object = {
  a: 2,
  b: 6
};

var array _.keys(object).unshift('type');
var array1 _.keysIn(object).unshift('type');

console.log(array) // ['a', 'b'] and not ['type', 'a', 'b']
console.log(array1) // ['a', 'b'] and not ['type', 'a', 'b']

有什么特别的原因或者我错过了什么?

2 个答案:

答案 0 :(得分:1)

Array#unshift改变数组,并返回新的长度。创建一个键数组,并在另一个表达式中取消type



var object = {
  a: 2,
  b: 6
};

var array = _.keys(object); // or Object.keys()

array.unshift('type');

console.log(array);

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

另一种选择是使用Array#concat

&#13;
&#13;
var object = {
  a: 2,
  b: 6
};

var array = [].concat('type', Object.keys(object));

console.log(array);
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

Lodash启用方法链序列,implicitlyexplicitly

一旦开始链接,you can use both Lodash and native Array methods,就像这样:

var object = {
  a: 2,
  b: 6
};

var array = _
  .chain(object)
  .keys()
  .unshift('type')
  .value();

console.log(array);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.core.min.js"></script>

由于这样的链序列的结果不是单个值或原始值(它是一个数组),因此必须使用value()来解包它。