Javascript 对除最后一个值以外的所有值使用筛选器

Javascript 对除最后一个值以外的所有值使用筛选器,javascript,arrays,json,object,Javascript,Arrays,Json,Object,我正在使用JavaScript中的函数从JSON对象获取数据。除了最后一个条目,我要所有的。我该怎么做?(例如,在for…循环中,我可以执行array.length-1以避免最终值) 目标是获得除最后一个值外的所有环境区域值: Air pollution and emissions: 27 Drilling and extraction: 19 Infrastructure and planning: 13 Animals: 12 Water pollution: 11 Toxic substa

我正在使用JavaScript中的函数从JSON对象获取数据。除了最后一个条目,我要所有的。我该怎么做?(例如,在for…循环中,我可以执行array.length-1以避免最终值)

目标是获得除最后一个值外的所有环境区域值:

Air pollution and emissions: 27
Drilling and extraction: 19
Infrastructure and planning: 13
Animals: 12
Water pollution: 11
Toxic substances and safety: 8
Other: 10 // I do not want this value
我在下面编写了这个函数,以获取有关环境区域的所有值

let x = summary.map(function (item) {
  return item['Environmental Areas'] + ': ' + item.Total + '<br />';
});
 
The JSON array of objects is -

var summary = [
  {
    'Environmental Areas': 'Air pollution and emissions',
    Completed: '19',
    'In progress': '8',
    Total: '27',
  },
  {
    'Environmental Areas': 'Drilling and extraction',
    Completed: '11',
    'In progress': '8',
    Total: '19',
  },
  {
    'Environmental Areas': 'Infrastructure and planning',
    Completed: '12',
    'In progress': '1',
    Total: '13',
  },
  {
    'Environmental Areas': 'Animals',
    Completed: '11',
    'In progress': '1',
    Total: '12',
  },
  {
    'Environmental Areas': 'Water pollution',
    Completed: '4',
    'In progress': '7',
    Total: '11',
  },
  {
    'Environmental Areas': 'Toxic substances and safety',
    Completed: '6',
    'In progress': '2',
    Total: '8',
  },
  {
    'Environmental Areas': 'Other',
    Completed: '5',
    'In progress': '5',
    Total: '10',
  },
  {
    'Environmental Areas': 'All',
    Completed: '68',
    'In progress': '32',
    Total: '100',
  },
];
let x=summary.map(函数(项){
返回项目['Environmental Areas']+':'+item.Total+'
'; }); 对象的JSON数组是- 风险值汇总=[ { “环境区域”:空气污染和排放, 已完成:'19', “进行中”:“8”, 总数:'27', }, { “环境区域”:“钻井和开采”, 已完成:“11”, “进行中”:“8”, 总数:'19', }, { “环境区”:“基础设施和规划”, 已完成:'12', “进行中”:“1”, 总数:'13', }, { “环境区”:“动物”, 已完成:“11”, “进行中”:“1”, 总数:'12', }, { “环境区”:“水污染”, 已完成:“4”, ‘进行中’:‘7’, 总数:'11', }, { “环境区域”:“有毒物质与安全”, 已完成:“6”, “进行中”:“2”, 总数:"8",, }, { ‘环境区’:‘其他’, 已完成:“5”, “进行中”:“5”, 总数:'10', }, { “环境区域”:“全部”, 已完成:'68', ‘进行中’:‘32’, 总数:'100', }, ];
您可以将其限制为除reduce函数中最后一个值之外的所有值。当到达最后一个元素时,什么也不做

let x = summary.reduce(function(acc, item, i) {
  if (i === summary.length - 1) return acc;
  return acc.push(item['Environmental Areas'] + ': ' + item.Total + '<br />')
  return acc;
}, []);
let x=summary.reduce(函数(acc,项,i){
如果(i==summary.length-1)返回acc;
返回acc.push(项目['Environmental Areas']+':'+项目总数+'
') 返回acc; }, []);
您可以将其限制为除reduce函数中最后一个值之外的所有值。当到达最后一个元素时,什么也不做

let x = summary.reduce(function(acc, item, i) {
  if (i === summary.length - 1) return acc;
  return acc.push(item['Environmental Areas'] + ': ' + item.Total + '<br />')
  return acc;
}, []);
let x=summary.reduce(函数(acc,项,i){
如果(i==summary.length-1)返回acc;
返回acc.push(项目['Environmental Areas']+':'+项目总数+'
') 返回acc; }, []);
也许您可以复制阵列,然后删除最后一个? 可以使用“扩展”操作符和“拼接”来执行此操作,如下所示:

var mySummary=[…摘要];//复制数组。注意:这是ES6的一项功能。
mySummary.splice(-1,1);//删除最后一个元素

然后你只需在mySummary上使用map(或者你想要的任何名称)。如果你能承受丢失最终条目的损失,你也可以使用原始数组,然后你可以跳过第一行并使用
摘要。拼接

也许你可以复制数组,然后删除最后一个? 可以使用“扩展”操作符和“拼接”来执行此操作,如下所示:

var mySummary=[…summary];//复制数组。注意:这是一个ES6功能。
mySummary.splice(-1,1);//删除最后一个元素

然后,您只需在mySummary上使用map(或任何您想要的名称)。如果您能够承受丢失最终条目的损失,您也可以使用原始数组,然后您可以跳过第一行并使用
摘要。splice

您可以这样进行筛选

let x = summary.filter((_,index) => index != summary.length - 1 ).map(function (item) {
  return item['Environmental Areas'] + ': ' + item.Total + '<br />';
});
let x=summary.filter((u,index)=>index!=summary.length-1).map(函数(项){
返回项目['Environmental Areas']+':'+item.Total+'
'; });
您可以这样过滤

let x = summary.filter((_,index) => index != summary.length - 1 ).map(function (item) {
  return item['Environmental Areas'] + ': ' + item.Total + '<br />';
});
let x=summary.filter((u,index)=>index!=summary.length-1).map(函数(项){
返回项目['Environmental Areas']+':'+item.Total+'
'; });
似乎你有一个目标

let objs = [{
 'Air pollution and emissions': 27,
 'Drilling and extraction': 19,
 'Infrastructure and planning': 13,
 'Animals': 12,
 'Water pollution': 11,
 'Toxic substances and safety': 8,
 'Other': 10,
}]

如果您不需要“其他”属性,请尝试这种方式

let newObjs = objs.map(obj => {
 const {Other, ...newObj} = obj
 return newObj
})

结果将给出相同的obj,没有其他属性

似乎你有一个对象

let objs = [{
 'Air pollution and emissions': 27,
 'Drilling and extraction': 19,
 'Infrastructure and planning': 13,
 'Animals': 12,
 'Water pollution': 11,
 'Toxic substances and safety': 8,
 'Other': 10,
}]

如果您不需要“其他”属性,请尝试这种方式

let newObjs = objs.map(obj => {
 const {Other, ...newObj} = obj
 return newObj
})
结果将给出相同的obj,没有其他属性

你的意思是

const summary=
[{‘环境区域’:‘空气污染和排放’,已完成:'19’,‘进行中:'8',总计:'27'}
,{“环境区”:“钻探和开采”,完成:'11',进行中:'8',总计:'19'}
,{“环境区”:“基础设施和规划”,已完成:'12',“进行中:'1',总计:'13'}
,{“环境区域”:“动物”,完成:'11',进行中:'1',总计:'12'}
,{“环境区”:“水污染”,已完成:'4',正在进行:'7',总计:'11'}
,{“环境区域”:“有毒物质和安全”,完成:“6”,“进行中”:“2”,总计:“8”}
,{“环境区”:“其他”,已完成:'5',正在进行:'5',总计:'10'}
,{“环境区域”:全部,已完成:'68',进行中:'32',总计:'100'}
] 
const result=Object.fromEntries(
摘要.过滤器(x=>x[‘环境区域’!=‘其他’和&x[‘环境区域’!=‘所有’)
.地图(e=>[e[“环境区域”,e.Total]))
console.log(result)
你的意思是

const summary=
[{‘环境区域’:‘空气污染和排放’,已完成:'19’,‘进行中:'8',总计:'27'}
,{“环境区”:“钻探和开采”,完成:'11',进行中:'8',总计:'19'}
,{“环境区”:“基础设施和规划”,已完成:'12',“进行中:'1',总计:'13'}
,{“环境区域”:“动物”,完成:'11',进行中:'1',总计:'12'}
,{“环境区”:“水污染”,已完成:'4',正在进行:'7',总计:'11'}
,{“环境区域”:“有毒物质和安全”,完成:“6”,“进行中”:“2”,总计:“8”}
, { '