我目前正在进行一项任务,我必须使用Lodash
并在JSON数组中找到一个对象。以下是我的JSON
字符串
var options = {
'axisSeries': [
["xText", "xValue"],
["yText", "yValue"]
]
}
现在使用Lodash
我想在每个axisSeries
数组的第二个索引中找到字符串。
例如,如果我搜索xValue
。它应该返回我的对象,因为它在First Array的第二个索引中可用。 yValue
也是如此。
但是它不应该返回xText
和yText
的对象,因为它们在第二个索引中都不可用。
要这样做,我想使用Lodash
。但我找不到任何合适的功能。
答案 0 :(得分:0)
我认为你的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>
答案 1 :(得分:0)
您可以将_.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>