【发布时间】:2016-05-11 14:39:58
【问题描述】:
var array = [
{ T: 2, G: 2, K: 2}, //<--- return this cause T+G+K = 6
{ T: 2, G: 2, K: 3},
{ T: 1, G: 3, K: 2} //<--- return this cause T+G+K = 6
];
我想从数组中返回相同的字段对象总和。如何做到这一点?
我想:
var array = [
{ T: 2, G: 2, K: 2 }, //<--- return this cause T+G+K = 6
{ T: 2, G: 2, K: 3 },
{ T: 1, G: 3, K: 2 } //<--- return this cause T+G+K = 6
];
//getting uniq array
var uniqArray = _.uniq(array, function(value) {
return value.T + value.G + value.K;
}
//uniqArray = [
// { T: 2, G: 2, K: 2 },
// { T: 2, G: 2, K: 3 }
//];
//getting the difference between uniq and normal array
var differenceArray = _.difference(array, uniqArray);
//differenceArray = [
// { T: 1, G: 3, K: 2 }
//];
//and finally try to get the same objects in array like:
var theSame = [];
_.each(array, function(value) {
if((value.T + value.G + value.K) === _.each(differenceArray, function(num) {
return num.T + num.G + num.K; }) {
theSame.push(value);
}
);
但我真的不太了解下划线,所以我认为我试图通过使用太多并使其太难来做某事。如何轻松获取这些对象?
谢谢
【问题讨论】:
-
首先我不明白你想要达到什么目的。让我们从您的 cmets 开始。您评论了一行:“ { T: 2, G: 2, K: 2 }, //
-
噢,抱歉弄错了。我之前编辑了这些值,忘记了编辑这些 cmets。我需要从数组中返回所有字段总和等于 6 的对象(第一个和第三个)。
标签: arrays object underscore.js each