Ale*_*x K 1 javascript arrays object
我正在尝试使用包含来查看对象是否在数组内,如下所示:
arr=[{name:'Dan',id:2}]
Run Code Online (Sandbox Code Playgroud)
我想像这样检查:
arr.includes({name:'Dan',id:2})
Run Code Online (Sandbox Code Playgroud)
这返回false,有没有办法做到这一点?
include 是否适用于对象数组?
是的 - 如果您使用与数组中的参数相同的对象includes:
const obj = {name: "Dan", id: 2};
const arr = [{name: "T.J.", id: 42}, obj, {name: "Joe", id: 3}];
console.log(arr.includes(obj)); // true
console.log(arr.includes({name: "Dan", id: 2})); // falseRun Code Online (Sandbox Code Playgroud)
includes使用===检查,并且o1 === o2仅当o1和o2引用同一个对象时才为真。在您的示例中,您使用了两个不同但等效的对象。
对于您的用例,您可能需要some,它允许您执行回调以确定数组中的条目是否与条件匹配:
if (arr.some(e => e.id === 2)) {
Run Code Online (Sandbox Code Playgroud)
例子:
if (arr.some(e => e.id === 2)) {
Run Code Online (Sandbox Code Playgroud)
有多种方法可以旋转它,具体取决于您希望检查的内容(在此问题的答案中详细讨论),但这仅意味着调整您传递的函数的内容some。
| 归档时间: |
|
| 查看次数: |
1059 次 |
| 最近记录: |