如何在JavaScript中反转嵌套对象内的对象数组?
如何反转对象内指定数组并保持原结构?
之前处理纯对象数组时,我们可以直接用reverse()方法反转:
const input = [{"test":1},{"test":2},{"test":3}] const result = input.reverse(); // 输出:[{"test":3},{"test":2},{"test":1}]
现在输入结构变成了包含数组的对象:
const newInput = { releases: [{"test":1},{"test":2},{"test":3}] }
想要保持对象结构不变,仅反转其中的releases数组,可以用两种方式实现:
方法1:直接修改原对象
如果允许修改原newInput对象,直接调用数组的reverse()方法即可:
const newInput = { releases: [{"test":1},{"test":2},{"test":3}] }; newInput.releases.reverse(); // 此时newInput的值为:{ releases: [{"test":3},{"test":2},{"test":1}] }
注意:reverse()是数组的原地修改方法,执行后原newInput.releases数组会直接被反转。
方法2:创建新对象(不修改原数据)
如果不想改动原对象,可通过复制数组和对象的方式,生成一个新的结果对象:
const newInput = { releases: [{"test":1},{"test":2},{"test":3}] }; const reversedResult = { ...newInput, // 复制原对象的其他属性 releases: [...newInput.releases].reverse() // 复制数组后再反转,不影响原数组 }; // reversedResult即为目标结构,原newInput保持不变
内容的提问来源于stack exchange,提问作者Aren Trot
相关产品推荐
相关产品推荐

