从javascript值获取密钥

从javascript值获取密钥,javascript,json,object,Javascript,Json,Object,我有一个通过函数传递的对象。目标如下: items: { 'cannonball': '0', 'cannon stand': '-9000', 'cannon barrel': '800', . . . } 我的函数filterItem定义如下: function filterItem(items) { // console.log(items); var value = []; filteredItems = {} console.log(items

我有一个通过函数传递的对象。目标如下:

items: {
  'cannonball': '0',
  'cannon stand': '-9000',
  'cannon barrel': '800',
  .
  .
  .
}
我的函数
filterItem
定义如下:

function filterItem(items) {
  // console.log(items);
  var value = [];
  filteredItems = {}
  console.log(items);
  for (var key in items) {
    if (items[key] > 0 && items[key] < 1000) {
      value.push(items[key]);
    };
  };
    console.log(value);
  };

提前感谢。

如果“显示”是指console.log对象,则可以对功能进行轻微修改:

let项目={
“炮弹”:“0”,
“炮台”:“9000”,
“炮管”:“800”
};
功能过滤器项(项目){
filteredItems={}
对于(var输入项){
如果(项[键]>0和项[键]<1000){
filteredItems[key]=项[key];
};
}
console.log(filteredItems);
};

过滤器(项目)如果我正确理解了您的问题,那么您可以通过以下方式实现这一点:

var数据={
项目:{
“炮弹”:“0”,
“炮台”:“-9000”,
“炮管”:“800”,
}
}
功能过滤器项(项目){
//使用Object.entries获取键/值对数组
常量filteredItems=Object.entries(items)
.filter(([key,value])=>{
//按标准00&&parseInt(值)<1000;
})
.reduce((结果,[键,值])=>{
//使用缩减创建具有筛选的键/值的哈希/对象
结果[键]=值;
返回结果;
}, {})
console.log(filteredItems)
}

filterItem(data.items)
这是使用
Object.entries
和数组
reduce

var项目={
“炮弹”:“0”,
“炮台”:“9000”,
“炮管”:“800”,
}
功能过滤器项(项目){
返回Object.entries(items).reduce((acc[key,value])=>{
如果(值>0&&值<1000){
acc.push({[键]:值})
}
返回acc;
}, []);
};

console.log(filteriem(items))这没有意义。“显示值的键”是什么意思?看起来您只保留了一个值数组。为什么不使用filteredItems对象,并在它们通过检查时附加它们呢<代码>过滤数据项[键]=项[键]值。推送({key:items[key]})??将值设置为对象数组,而不是简单数组。
filteredItems: {
  cannon barrel: '800'
}