javascript - 如何使用jquery排除数组中的空值和键?

标签 javascript jquery arrays ajax object

我有一个数组;

[
  {pre_ref_fullname: "", pre_ref_position: "", pre_ref_phone: ""},
  {pre_ref_fullname: "", pre_ref_position: "", pre_ref_phone: ""},
  {pre_ref_fullname: "", pre_ref_position: "", pre_ref_phone: ""}
]

所以,如果值为空,我想删除元素。如果用户添加了 2 个引用信息,我想获取这样的数据;

[
{pre_ref_fullname: "Name", pre_ref_position: "Job", pre_ref_phone: "Number"},
{pre_ref_fullname: "Name2", pre_ref_position: "Job2", pre_ref_phone: "Number2"}
]

我使用了一些方法但不起作用。这是最后一次使用reduce 尝试,$prerefData 拥有这个数组;

var arr = $prerefData.reduce((result, item) => {
    if (item.value != "") {
       result.push(item);
    }
    return result;
    }, []);
console.log(arr);

最佳答案

您可以使用Javascript Array filter method

简单地说,Array.filter 将循环遍历您的数组,并对每个元素运行回调:

  • 如果返回true:元素包含在结果
  • 如果返回false:元素被过滤掉

let data = [
  {pre_ref_fullname: "", pre_ref_position: "", pre_ref_phone: ""},
  {pre_ref_fullname: "", pre_ref_position: "", pre_ref_phone: ""},
  {pre_ref_fullname: "", pre_ref_position: "", pre_ref_phone: ""},
  {pre_ref_fullname: "Name", pre_ref_position: "Job", pre_ref_phone: "Number"},
  {pre_ref_fullname: "Name2", pre_ref_position: "Job2", pre_ref_phone: "Number2"}
];

let result = data.filter(function (item) {
  for(key in item) {
    if (item[key]) {
      // Means one of the object keys have values, include it in the result
      return true
    }
  }
})

console.log(result)

关于javascript - 如何使用jquery排除数组中的空值和键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56122100/

相关文章:

使用 4 维数组的 Java 程序

javascript - 如何隐藏客户端 api key ?

javascript - jquery 添加新的复选框,当点击新的复选框时,它什么也没有发生

jquery - jquery 中的可滚动对话框

javascript - Bootstrap 下拉菜单在移动设备上单击链接之前折叠

arrays - 使用变量属性在 Swift 中对数组进行排序?

javascript - 在 JavaScript 中将 float 转换为整数的最佳方法是什么?

javascript - 谷歌地图从变量而不是文件显示 geoJSON

jquery - 使用甜蜜警报防止表单提交时出现默认情况

java - Java 中的 if(变量 == [集合中的任何项目])