You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript对象数组过滤:移除无Common_Text_Area__c属性的元素

过滤仅包含指定属性的对象数组

嘿,这个需求其实挺常见的,用JavaScript里的filter()方法就能轻松解决,而且代码简洁又高效!

核心思路

Array.prototype.filter()会遍历你的数组,对每个元素执行你指定的判断逻辑,只保留返回true的元素,最终返回一个新数组(不会修改原数组哦)。我们只需要在判断逻辑里检查每个对象是否拥有Common_Text_Area__c这个属性就行。

基础实现代码

先给你一个完整的示例,一看就懂:

// 假设这是你的原始对象数组
const originalObjects = [
  { Id: 1, Name: "Item 1", Common_Text_Area__c: "这是第一个内容" },
  { Id: 2, Name: "Item 2" }, // 没有目标属性,会被移除
  { Id: 3, Common_Text_Area__c: "第三个内容" },
  { Id: 4, Name: "Item 4", Other_Field: "无关属性" } // 没有目标属性,会被移除
];

// 过滤出包含Common_Text_Area__c属性的对象
const filteredArray = originalObjects.filter(obj => {
  // 使用hasOwnProperty确保只检查对象自身的属性(不会误判原型链上的属性)
  return obj.hasOwnProperty('Common_Text_Area__c');
});

console.log(filteredArray);
// 输出结果:[{ Id:1, ... }, { Id:3, ... }]

进阶:如果需要同时确保属性有有效值

如果你的场景里,不仅要求属性存在,还需要属性值不能是undefined或者空字符串,可以稍微调整判断逻辑:

const filteredArray = originalObjects.filter(obj => {
  return obj.hasOwnProperty('Common_Text_Area__c') 
    && obj.Common_Text_Area__c !== undefined 
    && obj.Common_Text_Area__c.trim() !== ''; // 排除空字符串(包括全空格)
});

为什么用hasOwnProperty()?

可能你会想到直接用if (obj.Common_Text_Area__c),但这样有个问题:如果某个对象的Common_Text_Area__c属性值是null、0或者false,会被误判为不存在。而hasOwnProperty()只会判断属性是否存在,不管它的值是什么,更准确。

内容的提问来源于stack exchange,提问作者Amer Bearat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:15:11