js对象数组查找某个属性
时间: 2023-04-05 18:02:44 浏览: 86
可以使用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 === '某个值');
```
希望这个回答能够解决你的问题。
JS如何获取数组中某个对象的属性
可以使用数组下标来获取数组中某个对象,然后使用点号或方括号来获取该对象的属性。例如,假设有一个数组`arr`,其中包含多个对象,每个对象都有一个`name`属性,我们可以这样获取第一个对象的`name`属性:
```
var arr = [{name: '张三'}, {name: '李四'}, {name: '王五'}];
var firstName = arr[0].name;
console.log(firstName); // 输出:'张三'
```
在这个例子中,我们使用`arr[0]`获取了第一个对象,然后使用点号来获取该对象的`name`属性。
如果你不知道要获取的对象在数组中的位置,可以使用`Array.find()`方法根据某个条件查找该对象,然后再获取其属性。例如,假设我们要获取`arr`中`name`属性为`'李四'`的对象,可以这样做:
```
var targetObj = arr.find(function(obj) {
return obj.name === '李四';
});
var targetName = targetObj.name;
console.log(targetName); // 输出:'李四'
```
在这个例子中,我们使用`Array.find()`方法查找了`name`属性为`'李四'`的对象,然后使用点号来获取该对象的`name`属性。