如果我有以下数组:
[
{
0:{
id:5,
name:'xxx'
}
},
{
1:{
id:6,
name:'yyy'
}
}
]
我需要将其转换为
['xxx', 'yyy']
如何用Lodash实现它?
答案 0 :(得分:2)
您可以使用Lodash的map
方法。
var data = [
{
0:{
id:5,
name:'xxx'
}
},
{
1:{
id:6,
name:'yyy'
}
}
];
var arr = _.map(data, function(element, idx) {
return element[idx].name;
});
console.log(arr);

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.js"></script>
&#13;
正如yBrodsky指出的那样,这假设对象键每次都继续增加一个。
答案 1 :(得分:1)
没有Lodash,但也许:
var arr = [];
x.forEach(function(item, index) {
arr.push(item[index].name)
});
console.log(arr)
这假设对象键持续增加,0,1,2 .... n
答案 2 :(得分:1)
这是一个解决方案,它使用lodash的flatMapDeep在提取名称之前提取值:
Dim rgFound As Range
Set rgFound = Range("A1:E6").Find("1.Number of people", lookat:=xlWhole)
Dim rgValue as Range
If Not rgFound is Nothing Then
If Len(rgFound.Offset(1)) Then 'if the very next row is the next non-blank cell
Set rgValue = rgFound.Offset(1)
Else 'if blanks appear between found and value
Set rgValue = rgFound.End(xlDown)
End If
End If
修改强> 更改地图以为每个项目返回不同的值。例如,要将id和name作为键值对返回,您可以这样做:
let data = [
{
0:{
id:5,
name:'xxx'
}
},
{
1:{
id:6,
name:'yyy'
}
}
]
let result = _(data)
.flatMapDeep(_.values)
.map('name')
.value()