【发布时间】:2018-07-22 11:59:36
【问题描述】:
我想破例。我很难解释它,所以让我告诉你我的意思。
我的代码:
fruits = [
{name: "apple", energy: 100, not: "kiwi"},
{name: "kiwi", energy: 126, not: "orange"},
{name: "banana", energy: 150, not: ""},
{name: "orange", energy: 118, not: "peach"},
{name: "pineapple", energy: 98, not: ""},
{name: "coconut", energy: 83, not: ""},
{name: "peach", energy: 65, not: ""},
{name: "lemon", energy: 36, not: ""}
]
const pick = (arr, n) => {
const r = [];
for (var i = 0; i < arr.length; i += n) {
const slice = arr.slice(i, i+n);
const name = slice.map(({name}) => name).join('-')
const energy = slice.reduce((r, {energy}) => r + energy, 0);
r.push({name, energy})
}
return r;
}
const result = pick(fruits, 2)
console.log(result)
我得到的结果是
{name: "apple-kiwi", energy: 226},
{name: "banana-orange", energy: 268},
{name: "pineapple-coconut", energy: 181},
{name: "peach-lemon", energy: 101}
我想要的是做一个例外(fruits 中的not)。所以苹果不应该与猕猴桃链接,猕猴桃与橙子等链接,它应该看起来像这样
{name: "apple-banana", energy: something},
{name: "kiwi-pineapple", energy: something},
...
我以为我可以过滤 slice 并检查其中是否有任何项目包含 not,但我失败了 :(
谁能帮帮我?
【问题讨论】:
标签: javascript arrays javascript-objects