_.findWhere替代方法
时间: 2023-12-10 12:39:36 浏览: 24
在Underscore.js中,_.findWhere()用于在集合中查找一个对象,该对象包含指定的属性和值。如果您想要替代它,可以使用_.find()方法与_.matches()方法一起使用。
例如,假设我们有以下集合:
```
var users = [
{id: 1, name: "Alice", age: 25},
{id: 2, name: "Bob", age: 30},
{id: 3, name: "Charlie", age: 35}
];
```
要查找年龄为30的用户对象,可以使用以下代码:
```
var user = _.find(users, _.matches({age: 30}));
```
此代码将返回一个匹配的用户对象,即`{id: 2, name: "Bob", age: 30}`。
请注意,_.matches()方法返回一个函数,该函数用于测试对象是否与指定的属性和值匹配。因此,上述代码等效于以下代码:
```
var user = _.find(users, function(user) {
return user.age === 30;
});
```
希望这可以帮助您找到一个适合您的项目的替代方法。
相关问题
MySQL 替代 find_in_set的方法
可以使用正则表达式来代替 MySQL 中的 find_in_set 函数,具体方法如下:
1. 使用正则表达式将逗号替换为 '|' 或者 '\n',例如:
```
SELECT * FROM table WHERE REGEXP_REPLACE(column, ',', '|') REGEXP '^keyword$';
```
2. 使用 FIND_IN_SET 和 CONCAT_WS 函数来实现,例如:
```
SELECT * FROM table WHERE FIND_IN_SET('keyword', REPLACE(column, ',', CONCAT_WS(',', ' ', ' '))) > 0;
```
需要注意的是,以上两种方法都不是 find_in_set 函数的完美替代品,可能会存在一些性能和精度上的问题。因此,在使用时需要根据具体情况进行选择和优化。
mysql 替代find_in_set的方法
如果你需要在 MySQL 中查找包含某个值的行,但是不想使用 `find_in_set()` 函数,也可以使用 `like` 或 `regexp` 来实现。
使用 `like` 的例子:
```sql
SELECT * FROM my_table WHERE column_name LIKE '%value%';
```
使用 `regexp` 的例子:
```sql
SELECT * FROM my_table WHERE column_name REGEXP '[[:<:]]value[[:>:]]';
```
这两种方法都可以查找包含指定值的行,但是 `regexp` 更加灵活,可以使用正则表达式来匹配更加复杂的条件。