Lodash在nexted数组中找到对象

Lodash在nexted数组中找到对象

问题描述:

我目前正在进行一项任务,在该任务中我必须使用Lodash并在JSON数组内查找对象。下面是我JSONLodash在nexted数组中找到对象

var options = { 
    'axisSeries': [ 
    ["xText", "xValue"], 
    ["yText", "yValue"] 
    ] 
} 

现在使用Lodash我想找到的axisSeries每个数组的第2个指数的字符串。

因此,例如,如果我搜索xValue。它应该返回我的对象​​,因为它在第一个数组的第二个索引中可用。相同的yValue

但它不应该返回xTextyText的对象,因为它们在第二个索引中都不可用。

要这样做我想用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>

+0

当我运行的代码片段,它给了我语法错误 – user2988458

+0

您不能使用ES6兼容的浏览器。我已将babel编译添加到片段中。它应该解决这个问题。 – synthet1c