javascript - 如果值为 0,则从数组中的对象中删除属性

标签 javascript jquery

如果对象的值为零,我如何从对象中删除该属性?

var row = [{
  2013: "0", 
  2014: "0",       
  2015: "95163",
  carseries: "Sindelfingen"
},{
  2013: "0", 
  2014: "38954", 
  2015: "0", 
  2016: "0", 
  carseries: "Bremen"
}];

输出应该是这样的:

var row = [{
  2015: "95163",
  carseries: "Sindelfingen"
},{
  2014: "38954",  
  carseries: "Bremen"
}];

最佳答案

您需要使用数组迭代器的组合:map , filter , 和 reduce .

function clean(obj) {
  return Object.keys(obj) // get own keys
               .filter(function(key) {  // keep non '0' values
                 return obj[key] !== '0'
               })
              .reduce(function(out, key) { // recreate object using filtered keys
                 out[key] = obj[key]

                 return out
              }, {})
}

var row = [{
  2013: "0",
  2014: "0",
  2015: "95163",
  carseries: "Sindelfingen"
}, {
  2013: "0",
  2014: "38954",
  2015: "0",
  2016: "0",
  carseries: "Bremen"
}];

// apply clean function to each element of initial array
console.log(row.map(clean))

关于javascript - 如果值为 0,则从数组中的对象中删除属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46071871/

相关文章:

javascript - new Date() 适用于 Chrome 但不适用于 Firefox

javascript - 在 angularjs 中显示 div 不起作用

java - 复选框网格代表多对多数据库关系;从网络表单到数据库的最佳方式

javascript - 单击 html 加载器重新出现并消失

javascript - 使用 REST API 从本地主机进行开发时处理 CORS - Streamlabs API

php - 将值从 PHP 传递到 Javascript 变量

javascript - 当标题滚动到边界附近时,DataTables ColReorder 滚动

jquery - 快速jquery每个循环问题

javascript - 什么是记忆化?

javascript - 如何使用 javascript 提醒 pdf 中选定的文本?