var container = $('#container'); var names = []; container.find('[name]').each(function() { var name = this.name; if (names.indexOf(name) === -1) { names.push(name); } }); console.log(names);怎么优化
时间: 2023-12-06 14:45:16 浏览: 107
可以使用ES6 Set数据结构来避免使用数组和indexOf方法,简化代码并提高效率。如下所示:
```
const container = $('#container');
const names = new Set();
container.find('[name]').each(function() {
names.add(this.name);
});
console.log([...names]);
```
这里使用Set数据结构,遍历每个[name]属性元素并将其名称添加到Set中。最后,使用扩展运算符将Set转换为数组,并输出结果。
相关问题
var container = $('#container'); // 指定容器 var names = container.find('[name]').map(function() { return this.name; }).get(); console.log(names); 且去重
你可以使用 Set 数据结构来实现去重,代码如下:
```
var container = $('#container');
var names = [...new Set(container.find('[name]').map(function() {
return this.name;
}).get())];
console.log(names);
```
或者使用 forEach 循环和 indexOf 方法来手动去重,代码如下:
```
var container = $('#container');
var names = [];
container.find('[name]').each(function() {
var name = this.name;
if (names.indexOf(name) === -1) {
names.push(name);
}
});
console.log(names);
```
阅读全文