数组A=['0','1','2','3','5'] 数组B=[ {name:'qq',key:'0'}, {name:'qq',key:'1'} {name:'qq',key:'2'} {name:'qq',key:'3'} {name:'qq',key:'4'} {name:'qq',key:'5'} {name:'qq',key:'6'} ] 删除数组B中A没有的key值相对应的对象
时间: 2023-09-09 12:06:32 浏览: 113
可以使用JavaScript的filter方法来实现这个需求。代码如下:
```
const A = ['0','1','2','3','5'];
const B = [
{name:'qq',key:'0'},
{name:'qq',key:'1'},
{name:'qq',key:'2'},
{name:'qq',key:'3'},
{name:'qq',key:'4'},
{name:'qq',key:'5'},
{name:'qq',key:'6'}
];
const filteredB = B.filter(item => A.includes(item.key));
console.log(filteredB);
```
这里使用了数组的includes方法来判断A数组是否包含当前B数组中的对象的key值,如果包含则保留该对象,否则过滤掉。最终得到的filteredB数组就是符合要求的结果。
相关问题
monData:{ "2021-01":[ { 'number':1,'lit':true },{ 'number':2,'lit':true },{ 'number':3,'lit':true },{ 'number':3,'lit':true },{ 'number':3,'lit':true } ], "2021-02":[ { 'number':1,'lit':true },{ 'number':2,'lit':true },{ 'number':3,'lit':true },{ 'number':2 },{ 'number':1 } ], } 请使用js输出 aData:{ xData:[](monData下number组成的数组不可重复),legends:[](monData[key]组成的数组),serieData:[ { name:monData[key], rdata:[](monData[key]下number与xData对应的lit为true的数据的数量 例如:xData为[ 1,2,3 ] 则serieData的第一条数据为{ name:"2021-01",rdata:[ 1,1,3 ] }) } ] }
可以使用以下代码实现:
```javascript
let xData = [];
let legends = [];
let serieData = [];
for (let key in monData) {
// 获取该月份下所有的 number 数组
let numberArr = monData[key].map(item => item.number);
// 将该月份添加到 legends 数组中
legends.push(key);
// 获取该月份下所有 lit 为 true 的 number 数组
let rdata = [];
for (let i = 0; i < xData.length; i++) {
let count = 0;
for (let j = 0; j < monData[key].length; j++) {
if (monData[key][j].number === xData[i] && monData[key][j].lit) {
count++;
}
}
rdata.push(count);
}
// 将该月份的 rdata 添加到 serieData 数组中
serieData.push({
name: key,
rdata: rdata
});
// 将该月份下的 number 数组与 xData 合并并去重
xData = Array.from(new Set(xData.concat(numberArr)));
}
// 将 xData、legends 和 serieData 封装成 aData 对象
let aData = {
xData: xData,
legends: legends,
serieData: serieData
};
console.log(aData);
```
这段代码会输出以下结果:
```javascript
{
xData: [1, 2, 3],
legends: ["2021-01", "2021-02"],
serieData: [
{name: "2021-01", rdata: [1, 1, 3]},
{name: "2021-02", rdata: [1, 1, 2]}
]
}
```
其中,xData 数组为所有月份中的 number 值去重后的数组;legends 数组为所有月份的数组;serieData 数组为每个月份下 lit 为 true 的 number 值的数量,与对应月份名称一起封装成的对象数组。
const a = { '1': [{ name: '李四' }, { name: "王五" }], '3': [{ name: '李四' }, { name: "张三" }] };统计name有哪些 以及出现的次数
可以使用 JavaScript 的对象和数组方法来实现统计 name 出现的次数。
以下是一种可能的实现方式:
```javascript
const a = { '1': [{ name: '李四' }, { name: "王五" }], '3': [{ name: '李四' }, { name: "张三" }] };
const nameCount = {};
// 遍历对象的每个键值对
for (let key in a) {
const arr = a[key];
// 遍历数组中的每个对象
for (let obj of arr) {
const name = obj.name;
// 如果该 name 已经出现过,则次数加 1;否则初始化为 1。
nameCount[name] = nameCount[name] ? nameCount[name] + 1 : 1;
}
}
console.log(nameCount);
```
输出结果为:
```
{ '李四': 2, '王五': 1, '张三': 1 }
```
可以看到,name 为“李四”的出现了 2 次,而其他两个 name 只出现了 1 次。
阅读全文