对象内部数组和返回对象排序

时间:2017-09-18 19:54:53

标签: javascript

如果我有这样的对象:

const foo = {
    title: 'Bar',
    numbers: [1, 4, 3, 2],
}

我想对foo.numbers进行排序并返回新的foo对象。

要轻松排序数组foo.numbers.sort((a, b) => b - a)

但这只返回数组。

无论如何都要返回父对象吗?

例如:

const newFoo = sortFooNumbers(foo);

console.log(newFoo);
---
{
    title: 'Bar',
    numbers: [1, 2, 3, 4],
}

3 个答案:

答案 0 :(得分:2)

const foo = {
    title: 'Bar',
    numbers: [1, 4, 3, 2],
}

function sortfoo(obj){
    obj.numbers.sort((a, b) => b - a)
    return obj
}

sortfoo(foo)

答案 1 :(得分:1)

    public ActionResult Result(string Person)
{
    Hierarchy h = db.Hierarchies.First(i => i.People == Person);
    if (h == null)
    {
        return HttpNotFound();
    }
    int lvl = h.Level;
    var list = new string[lvl];
    list = h.Hierarchy1.Split('/');

    IQueryable<Hierarchy> TQuery = from a in db.Hierarchies
                                   where list.Contains(a.People)
                                   select a;
    return View("Result", TQuery.ToList());
}

现在,您已使用已排序的数组更新了foo.numbers = foo.numbers.sort((a, b) => b - a) 。我假设这是你想要的。

答案 2 :(得分:0)

然后你可能也需要克隆这个对象:

const foo = {
  title: 'Bar',
  numbers: [1, 4, 3, 2],
};

function sortFoo(foo){
  const cloned = JSON.parse(JSON.stringify(foo));
  cloned.numbers.sort((a,b)=>a-b);
  return cloned;
}

const newFoo = sortFoo(foo);