以下是一个示例代码,用于遍历数组中的对象,并根据现有属性的正则表达式匹配添加新属性。
// 正则表达式匹配规则
const regex = /^name/;
// 要遍历的数组
const arr = [
{ name: 'John', age: 25 },
{ name: 'Sarah', age: 30 },
{ name: 'Tom', age: 35 },
{ country: 'USA', age: 40 }
];
// 遍历数组中的对象
arr.forEach(obj => {
// 遍历对象的属性
Object.keys(obj).forEach(key => {
// 如果属性符合正则表达式匹配规则
if (regex.test(key)) {
// 添加新属性
obj[key + '_matched'] = true;
}
});
});
console.log(arr);
在上面的示例中,我们定义了一个正则表达式规则 ^name/
,用于匹配以 "name" 开头的属性。然后,我们遍历数组中的每个对象,并使用 Object.keys()
方法获取对象的所有属性。对于每个属性,我们使用 test()
方法测试是否符合正则表达式的匹配规则。如果匹配成功,我们将添加一个新属性,新属性的名字是原属性名加上 "_matched" 后缀。
最后,我们通过在控制台上打印数组来查看结果。输出将是:
[
{ name: 'John', age: 25, name_matched: true },
{ name: 'Sarah', age: 30, name_matched: true },
{ name: 'Tom', age: 35, name_matched: true },
{ country: 'USA', age: 40 }
]
可以看到,数组中的前三个对象的 "name" 属性都匹配了正则表达式,因此它们都添加了一个新属性 "name_matched"。而最后一个对象的 "country" 属性不匹配正则表达式,所以没有添加新属性。