js 数组每一项有name属性,循环判断name的值等于 “测试”的在数组中得位置
时间: 2024-05-08 08:16:14 浏览: 58
可以使用for循环遍历数组,判断每一项的name属性是否等于“测试”,如果相等,则记录该项在数组中的位置。
示例代码:
```javascript
var arr = [
{name: '测试', value: 1},
{name: '测试', value: 2},
{name: '其他', value: 3},
{name: '测试', value: 4}
];
var positions = []; // 存储位置的数组
for (var i = 0; i < arr.length; i++) {
if (arr[i].name === '测试') {
positions.push(i); // 记录位置
}
}
console.log(positions); // [0, 1, 3]
```
上述代码中,positions数组存储了所有name属性等于“测试”的项在数组中的位置。在本例中,结果为[0, 1, 3],表示有三个项的name属性为“测试”,它们在数组中的位置分别是0、1和3。
相关问题
用js判断一个数组中每个对象name是否一样
可以使用一个循环遍历数组中的每个对象,然后将对象的name属性存储在一个新数组中,再使用Set数据结构去重,最后判断去重后数组的长度是否为1即可。
代码示例:
```javascript
function checkSameName(arr) {
let nameArr = [];
for (let i = 0; i < arr.length; i++) {
nameArr.push(arr[i].name);
}
return new Set(nameArr).size === 1;
}
```
使用示例:
```javascript
const arr1 = [{ name: 'Tom' }, { name: 'Tom' }, { name: 'Tom' }];
console.log(checkSameName(arr1)); // true
const arr2 = [{ name: 'Tom' }, { name: 'Jerry' }, { name: 'Tom' }];
console.log(checkSameName(arr2)); // false
```
js 一个由有id,name属性的对象组成的数组,过滤掉其中name值一样的对象
可以使用Array.filter()和Array.findIndex()方法来实现该功能。具体实现步骤如下:
1. 使用Array.filter()方法过滤数组,返回一个新的数组,其中包含满足过滤条件的元素。
2. 在Array.filter()方法中使用Array.findIndex()方法查找当前元素在原数组中的位置,如果找到的位置不等于当前元素的索引,则说明该元素已经在之前出现过,需要过滤掉。
下面是示例代码:
```javascript
const arr = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Alice' },
{ id: 4, name: 'David' },
{ id: 5, name: 'Bob' },
];
const filteredArr = arr.filter((item, index, self) => {
return index === self.findIndex((t) => t.name === item.name);
});
console.log(filteredArr);
// [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, { id: 4, name: 'David' }]
```
在上面的代码中,使用了箭头函数和模板字符串来简化代码,如果不熟悉这些语法,可以参考相关文档进行学习。