繁体   English   中英

如何访问和删除/删除嵌套 Javascript 对象中的属性?

[英]How to access and remove/delete a property within a nested Javascript object?

由于 SO 用户对我在这里的初始问题的大力支持,我可以将建议的解决方案转移到我的特定项目环境中,并且几乎可以实现它。

我有一个返回的数组对象resultVolume ,其结构如下:

0: {x: "AUDUSD", y: 680, count: 10}
1: {x: "EURCAD", y: 690, count: 9}
2: {x: "USDCAD", y: 250, count: 8}
3: {x: "EURHUF", y: 600, count: 8}
4: {x: "CADCHF", y: 560, count: 7}
5: {x: "AUDNZD", y: 320, count: 7}
6: {x: "AUDCHF", y: 330, count: 7}
7: {x: "EURNOK", y: 590, count: 7}
8: {x: "EURJPY", y: 70, count: 7}
9: {x: "EURAUD", y: 430, count: 6}
10: {x: "EURSGD", y: 50, count: 5}
11: {x: "EURCHF", y: 50, count: 5}
12: {x: "GBPUSD", y: 370, count: 4}
13: {x: "AUDJPY", y: 80, count: 4}
14: {x: "CHFJPY", y: 240, count: 4}
15: {x: "USDJPY", y: 170, count: 4}
16: {x: "SGDJPY", y: 40, count: 4}
17: {x: "AUDCAD", y: 40, count: 4}

在此处输入图片说明

我现在想两者都做

  • 切割第 5 个之后的所有对象(因此在第 4 个对象之后)和
  • 从所有对象中删除count属性。

我尝试了以下方法:

delete resultCount.count;
const finalResultCount = resultCount.slice(0, 5);

返回

0: {x: "AUDUSD", y: 680, count: 10}
1: {x: "EURCAD", y: 690, count: 9}
2: {x: "USDCAD", y: 250, count: 8}
3: {x: "EURHUF", y: 600, count: 8}
4: {x: "CADCHF", y: 560, count: 7}
5: {x: "AUDNZD", y: 320, count: 7}

count属性没有被删除。

按照这些解决方案,我不确定如何访问每个对象,因为它们前面都有不同的数字。 所以可能我需要一个循环来实现预期的结果?

 const arr = [{x: "AUDUSD", y: 680, count: 10}, {x: "EURCAD", y: 690, count: 9}, {x: "USDCAD", y: 250, count: 8}, {x: "EURHUF", y: 600, count: 8}, {x: "CADCHF", y: 560, count: 7}, {x: "AUDNZD", y: 320, count: 7}] arr.forEach((item, index, array) => delete array[index].count); console.log(arr);

 var arr = [{ x: "AUDUSD", y: 680, count: 10 }, { x: "EURCAD", y: 690, count: 9 }, { x: "USDCAD", y: 250, count: 8 }, { x: "EURHUF", y: 600, count: 8 }, { x: "CADCHF", y: 560, count: 7 }, { x: "AUDNZD", y: 320, count: 7 }, { x: "AUDCHF", y: 330, count: 7 }, { x: "EURNOK", y: 590, count: 7 }, { x: "EURJPY", y: 70, count: 7 }, { x: "EURAUD", y: 430, count: 6 }, { x: "EURSGD", y: 50, count: 5 }, { x: "EURCHF", y: 50, count: 5 }, { x: "GBPUSD", y: 370, count: 4 }, { x: "AUDJPY", y: 80, count: 4 }, { x: "CHFJPY", y: 240, count: 4 }, { x: "USDJPY", y: 170, count: 4 }, { x: "SGDJPY", y: 40, count: 4 }, { x: "AUDCAD", y: 40, count: 4 }]; var newArr = arr.slice(0, 5).map(e => { delete e.count; return e; }); console.log(newArr);

let finalResultCount = resultCount.slice(0, 5);
finalResultCount.forEach(item => delete item.count);

 var resultVolume = [ {x: "AUDUSD", y: 680, count: 10}, {x: "EURCAD", y: 690, count: 9}, {x: "USDCAD", y: 250, count: 8}, {x: "EURHUF", y: 600, count: 8}, {x: "CADCHF", y: 560, count: 7}, {x: "AUDNZD", y: 320, count: 7}, {x: "AUDCHF", y: 330, count: 7}, {x: "EURNOK", y: 590, count: 7}, {x: "EURJPY", y: 70, count: 7}, {x: "EURAUD", y: 430, count: 6}, {x: "EURSGD", y: 50, count: 5}, {x: "EURCHF", y: 50, count: 5}, {x: "GBPUSD", y: 370, count: 4}, {x: "AUDJPY", y: 80, count: 4}, {x: "CHFJPY", y: 240, count: 4}, {x: "USDJPY", y: 170, count: 4}, {x: "SGDJPY", y: 40, count: 4}, {x: "AUDCAD", y: 40, count: 4}, ] delete resultVolume.splice(5); resultVolume.forEach(item => delete item.count); console.log(resultVolume);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM