Javascript 对除最后一个值以外的所有值使用筛选器
我正在使用JavaScript中的函数从JSON对象获取数据。除了最后一个条目,我要所有的。我该怎么做?(例如,在for…循环中,我可以执行array.length-1以避免最终值) 目标是获得除最后一个值外的所有环境区域值: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
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”}
, { '