1、js统计数组对象中某个属性等于某值的个数
const array = [{ name: 'Alice', age: 25 }, { name: 'Bob', age: 25 }, { name: 'Charlie', age: 30 }];
function countByProperty(arr, prop, value) {
return arr.filter(item => item[prop] === value).length;
}
const count = countByProperty(array, 'age', 25);
console.log(count); // 输出: 2
2、js 如何从一个对象列表中,提取部分属性组成新的数组
// 假设这是你的对象列表
let objectList = [
{ name: 'Alice', age: 30, gender: 'female' },
{ name: 'Bob', age: 25, gender: 'male' },
{ name: 'Charlie', age: 35, gender: 'male' }
];
// 使用 map() 方法提取 name 和 age 属性并组成新的数组
let newArray = objectList.map(obj => {
return { name: obj.name, age: obj.age };
});
console.log(newArray);
3、根据某个属性进行分类
function groupBy(array, key) {
return array.reduce((result, currentItem) => {
// 使用 key 函数(如果提供)或直接获取属性值
const groupKey = typeof key === 'function' ? key(currentItem) : currentItem[key];
// 确保 result 对象中有对应分类的数组
if (!result[groupKey]) {
result[groupKey] = [];
}
// 将当前项添加到对应分类的数组中
result[groupKey].push(currentItem);
return result;
}, {});
}
// 示例数据
const items = [
{ category: 'fruits', name: 'apple' },
{ category: 'animals', name: 'dog' },
{ category: 'fruits', name: 'banana' },
{ category: 'animals', name: 'cat' }
];
// 使用 groupBy 函数
const groupedItems = groupBy(items, 'category');
console.log(groupedItems);
4、js 数组对象的属性名统一更改
const renameKeys = (arr, keysMap) => {
return arr.map(obj => {
return Object.keys(obj).reduce((acc, key) => {
const newKey = keysMap[key] || key;
acc[newKey] = obj[key];
return acc;
}, {});
});
};
// 示例数据
const array = [
{ oldName1: 'value1', oldName2: 'value2' },
{ oldName1: 'value3', oldName2: 'value4' }
];
// 要修改的属性名映射
const keysMap = {
'oldName1': 'newName1',
'oldName2': 'newName2'
};
// 执行重命名操作
const updatedArray = renameKeys(array, keysMap);
console.log(updatedArray);