js对象数组查找某个属性
时间: 2023-04-05 18:02:44 浏览: 148
可以使用for循环或者Array.prototype.find()方法来查找js对象数组中的某个属性。例如,使用for循环可以这样写:
```
let arr = [{name: '张三', age: 18}, {name: '李四', age: 20}, {name: '王五', age: 22}];
let targetName = '李四';
for(let i=0; i<arr.length; i++){
if(arr[i].name === targetName){
console.log(`找到了${targetName},年龄为${arr[i].age}`);
break;
}
}
```
使用Array.prototype.find()方法可以这样写:
```
let arr = [{name: '张三', age: 18}, {name: '李四', age: 20}, {name: '王五', age: 22}];
let targetName = '李四';
let targetObj = arr.find(item => item.name === targetName);
console.log(`找到了${targetName},年龄为${targetObj.age}`);
```
相关问题
js 数组对象深层 通过某个属性查找符合的对象
你可以使用数组的 `find` 方法结合箭头函数来查找符合条件的对象。例如,假设你有一个对象数组 `arr`,其中每个对象都有一个 `info` 属性,你想查找其中 `info` 属性为某个值的对象,可以这样写:
```javascript
const result = arr.find(item => item.info === '某个值');
```
如果你想查找多个符合条件的对象,可以使用 `filter` 方法。例如,假设你想查找所有 `info` 属性为某个值的对象,可以这样写:
```javascript
const results = arr.filter(item => item.info === '某个值');
```
以上两种方法都是深层查找,即对象可以有多层嵌套,你可以通过 `.` 连接属性名来访问内部属性。例如,假设你的对象数组中每个对象都有一个嵌套的 `data` 对象,你想查找其中 `data` 对象的 `info` 属性为某个值的对象,可以这样写:
```javascript
const result = arr.find(item => item.data.info === '某个值');
const results = arr.filter(item => item.data.info === '某个值');
```
希望这个回答能够解决你的问题。
删除对象数组中某个对象
在JavaScript中,如果你有一个对象数组,并想删除其中特定的对象,可以使用`filter()`函数配合`indexOf()`或者`findIndex()`来找到该对象的位置,然后通过数组的索引来删除它。这里是一个例子:
```javascript
let arr = [{name: 'Tom', age: 20}, {name: 'Jerry', age: 25}, {name: 'Spike', age: 30}];
function removeObject(array, obj) {
let index = array.findIndex(item => JSON.stringify(item) === JSON.stringify(obj));
if (index !== -1) {
array.splice(index, 1);
}
return array;
}
// 示例:删除name为'Tom'的对象
let newArr = removeObject(arr, {name: 'Tom'});
console.log(newArr); // 输出:[ { name: 'Jerry', age: 25 }, { name: 'Spike', age: 30 } ]
```
在这个例子中,我们首先将对象转换为字符串并比较,因为直接比较两个对象可能会因为它们内部属性的不同顺序而不匹配。`removeObject`函数会查找并移除指定对象。
阅读全文