Lodash在nexted数组中找到对象
问题描述:
我目前正在进行一项任务,在该任务中我必须使用Lodash
并在JSON数组内查找对象。下面是我JSON
串Lodash在nexted数组中找到对象
var options = {
'axisSeries': [
["xText", "xValue"],
["yText", "yValue"]
]
}
现在使用Lodash
我想找到的axisSeries
每个数组的第2个指数的字符串。
因此,例如,如果我搜索xValue
。它应该返回我的对象,因为它在第一个数组的第二个索引中可用。相同的yValue
。
但它不应该返回xText
和yText
的对象,因为它们在第二个索引中都不可用。
要这样做我想用Lodash
。但是我找不到任何适当的功能。
答
我想你的JSON应该是这样的,
var options = {
'axisSeries': [
{ 'xText': 'X Text', 'xValue': 10 },
{ 'yText': 'Y Text', 'yValue': 20 }
]
}
而且在Lodash使用_.pluck()获得xValue
一样,
_.pluck(options.axisSeries, 'xValue');
// should return [10]
另外,您可以使用_.map(),
_.map(options.axisSeries, 'xValue');
如果你想获得通过xValue
整个数组,那么你可以使用_.filter()一样,
var options = {
'axisSeries': [
["xText", "xValue"],
["yText", "yValue"]
]
}
console.log(
_.filter(options.axisSeries, function(o) { return o.indexOf('xValue')!=-1; })
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
答
你可以使用_.map
与_.last
,或者如果你需要得到一个特定的索引,你可以使用_.nth
。你也应该告诉你的老师ramda。它具有更好的结构和功能组合功能。
var options = {
'axisSeries': [
["xText", "xValue"],
["yText", "yValue"]
]
}
console.log(
_.map(options.axisSeries, _.last),
_.map(options.axisSeries, xs => _.nth(xs, 1))
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
当我运行的代码片段,它给了我语法错误 – user2988458
您不能使用ES6兼容的浏览器。我已将babel编译添加到片段中。它应该解决这个问题。 – synthet1c