以下是一个示例解决方法:
假设我们有一个对象数组,每个对象都有一些属性,我们想按属性前缀提取对象。首先,我们可以创建一个空对象,用于存储提取后的结果。然后,我们可以遍历对象数组,对于每个对象,我们可以检查它的属性是否以指定的前缀开头。如果是的话,我们将该属性的值存储到结果对象中。
以下是一个示例代码:
// 示例对象数组
let objects = [
{ name: 'John', age: 30, address_city: 'New York', address_state: 'NY' },
{ name: 'Jane', age: 25, address_city: 'San Francisco', address_state: 'CA' },
{ name: 'Mike', age: 35, address_city: 'Seattle', address_state: 'WA' }
];
// 提取对象
function extractObjectsByPrefix(objArray, prefix) {
let result = {}; // 存储提取结果的对象
// 遍历对象数组
objArray.forEach(obj => {
// 遍历对象的属性
Object.entries(obj).forEach(([key, value]) => {
// 检查属性是否以指定的前缀开头
if (key.startsWith(prefix)) {
// 提取属性的值到结果对象中
result[key] = value;
}
});
});
return result;
}
// 使用示例
let extractedObjects = extractObjectsByPrefix(objects, 'address_');
console.log(extractedObjects);
// 输出: { address_city: 'New York', address_state: 'NY', address_city: 'San Francisco', address_state: 'CA', address_city: 'Seattle', address_state: 'WA' }
在上面的示例中,我们定义了一个extractObjectsByPrefix
函数,它接受一个对象数组和一个前缀作为参数。函数内部创建了一个空对象result
,用于存储提取后的结果。然后,通过遍历对象数组和对象的属性,使用startsWith
方法检查属性是否以指定的前缀开头。如果是的话,就将属性的值存储到结果对象中。最后,返回结果对象。
请注意,由于JavaScript对象的键必须是唯一的,如果多个对象具有相同前缀的属性,只有最后一个属性的值会被存储到结果对象中。
上一篇:按属性排序XML