需要使用lodash将字符串添加到数组中名字的末尾

时间:2017-02-07 17:04:35

标签: javascript lodash

我有以下数组。

var gillFamily = [
  { name: 'john', age: 20 }, 
  { name: 'richard', age: 27 }, 
  { name: 'debbie', age: 55 }, 
  { name: 'dan', age: 25 }, 
  { name: 'robin', age: 60 }
];

我需要使用lodash打印添加了姓氏“Gill”的名字。

我尝试过的这是我最接近的:

_.map(gillFamily, "name") + " Gill";

但是只将Gill添加到数组中的姓氏。

如何将name添加到数组中的所有项目?

3 个答案:

答案 0 :(得分:0)

一个选项是:

_.map(gillFamily, (el) => el.name + " Gill");

如果环境不支持ES6:

_.map(gillFamily, function(el) { 
   return el.name + " Gill" 
});

您也可以使用Array.prototype.map功能。

答案 1 :(得分:0)

您需要访问Object内的name属性,然后将Gill字符串添加到该名称。

var gillFamily = [  {name: 'john', age: 20},
		    {name: 'richard', age: 27},
		    {name: 'debbie', age: 55}, 
		    {name: 'dan', age :25}, 
		    {name: 'robin', age : 60}];

var gillFamilyWithLastNameAdded = _.map(gillFamily, person => person.name + " Gill");
console.log(gillFamilyWithLastNameAdded);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.js"></script>

答案 2 :(得分:0)

使用map函数,您可以使用以下内容映射每个附加了姓氏的元素。使用_.each(),您可以遍历对象数组并更新属性/属性期望。这可能不是最好/最有效的技术,但只有阅读文档才能找到它。

注意:这将覆盖原始对象。

免责声明:我不是活跃的lodash用户。

// Setup example data
var gillFamily = [{
  name: 'john',
  age: 20
}, {
  name: 'richard',
  age: 27
}, {
  name: 'debbie',
  age: 55
}, {
  name: 'dan',
  age: 25
}, {
  name: 'robin',
  age: 60
}];

// Display the initial values
document.getElementById("start").innerText = JSON.stringify(gillFamily);

// Append family name on the current family member's name
var gillFamilyWithLastNames = _.each(gillFamily, function(el) {
  // Append 'Gill' to the end of the existing name
  el.name += ' Gill';
});

// Show the results
document.getElementById("end").innerText = JSON.stringify(gillFamilyWithLastNames);
<script src="https://cdn.jsdelivr.net/lodash/4.17.4/lodash.min.js"></script>
<p>Starting Data</p>
<pre id="start"></pre>
<p>Ending Data</p>
<pre id="end"></pre>