为什么lodash联盟洗牌我的对象?

时间:2017-10-07 15:59:48

标签: javascript lodash

工会如何运作? 为什么它以随机顺序联合我的数组?

我是否有办法可以与result订单一样兴奋地结合?

result ids

result = {
-KvpYbfRfqMXLOsGH7fh : "-KvpYbfRfqMXLOsGH7fh",
-KvpYcMTcRQk5KYawqdR : "-KvpYcMTcRQk5KYawqdR",
-KvpYcjvkVfdC9a4Q9FO : "-KvpYcjvkVfdC9a4Q9FO",
-KvpYd9-1mbm016eV4MZ : "-KvpYd9-1mbm016eV4MZ",
-KvpYduO7YXkW1DoEQak : "-KvpYduO7YXkW1DoEQak",
-KvpYeMtsePxGrvdoBEd : "-KvpYeMtsePxGrvdoBEd",
-KvpYfPluPG5q4e_D35w : "-KvpYfPluPG5q4e_D35w",
-KvpYgGSQsrpR0g_084h : "-KvpYgGSQsrpR0g_084h",
-KvpYgpOGrwjnxy9F7SF : "-KvpYgpOGrwjnxy9F7SF",
-KvpYhU_NXWYIfC2H-UM : "-KvpYhU_NXWYIfC2H-UM",
}
   const result = Object.keys(action.response.result)
    return { 
      ...state,
      ids: _.union(result, state.ids),
    }

1 个答案:

答案 0 :(得分:0)

JavaScript普通对象属性名称不按特定顺序存储。

您可以使用MapSetArray按特定顺序存储对象

let arr = ["a", "b", "c"];
let map = new Map();
arr.forEach(value => map.set(value, {[value]:value}));

let b = map.get("b");

let res = [...map.values()];

JSON.stringify(b) === JSON.stringify(res.find(prop => Object.keys(prop).pop() === "b"));

JSON.stringify(b) === JSON.stringify(res[1]);