2018-10-10 18:03:03 -04:00
|
|
|
---
|
|
|
|
id: a10d2431ad0c6a099a4b8b52
|
2021-01-12 08:18:51 -08:00
|
|
|
title: 检查对象属性
|
2018-10-10 18:03:03 -04:00
|
|
|
challengeType: 5
|
2020-09-07 16:10:29 +08:00
|
|
|
forumTopicId: 16011
|
2018-10-10 18:03:03 -04:00
|
|
|
---
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
# --description--
|
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
对于第一个参数(对象数组)中的每个元素,检查第二个参数(字符串)所对应的属性值是否都为 <dfn>truthy</dfn>。
|
2020-12-16 00:37:30 -07:00
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
换句话说,函数的第一个参数是一个对象数组,第二个参数是一个字符串 `pre`,表示对象的属性。如果数组中的每个对象里,`pre` 对应属性值均为 `truthy`,则返回 `true`;否则返回 `false`。
|
2020-12-16 00:37:30 -07:00
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
JavaScript 中,如果一个值在 Boolean 的上下文中(比如 `if` 语句)的执行结果为 `true`,那么我们称这个值是 `truthy` 的。
|
2020-12-16 00:37:30 -07:00
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
别忘了,你可以使用点号表示法(`.`)或方括号表示法(`[]`)来访问对象的属性。
|
2020-12-16 00:37:30 -07:00
|
|
|
|
|
|
|
# --hints--
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
`truthCheck([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex")` 应返回 true。
|
2020-12-16 00:37:30 -07:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.strictEqual(
|
|
|
|
truthCheck(
|
|
|
|
[
|
|
|
|
{ user: 'Tinky-Winky', sex: 'male' },
|
|
|
|
{ user: 'Dipsy', sex: 'male' },
|
|
|
|
{ user: 'Laa-Laa', sex: 'female' },
|
|
|
|
{ user: 'Po', sex: 'female' }
|
|
|
|
],
|
|
|
|
'sex'
|
|
|
|
),
|
|
|
|
true
|
|
|
|
);
|
|
|
|
```
|
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
`truthCheck([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex")` 应返回 false。
|
2020-12-16 00:37:30 -07:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.strictEqual(
|
|
|
|
truthCheck(
|
|
|
|
[
|
|
|
|
{ user: 'Tinky-Winky', sex: 'male' },
|
|
|
|
{ user: 'Dipsy' },
|
|
|
|
{ user: 'Laa-Laa', sex: 'female' },
|
|
|
|
{ user: 'Po', sex: 'female' }
|
|
|
|
],
|
|
|
|
'sex'
|
|
|
|
),
|
|
|
|
false
|
|
|
|
);
|
2018-10-10 18:03:03 -04:00
|
|
|
```
|
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
`truthCheck([{"user": "Tinky-Winky", "sex": "male", "age": 0}, {"user": "Dipsy", "sex": "male", "age": 3}, {"user": "Laa-Laa", "sex": "female", "age": 5}, {"user": "Po", "sex": "female", "age": 4}], "age")` 应返回 false。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
```js
|
|
|
|
assert.strictEqual(
|
|
|
|
truthCheck(
|
|
|
|
[
|
|
|
|
{ user: 'Tinky-Winky', sex: 'male', age: 2 },
|
|
|
|
{ user: 'Dipsy', sex: 'male', age: 0 },
|
|
|
|
{ user: 'Laa-Laa', sex: 'female', age: 5 },
|
|
|
|
{ user: 'Po', sex: 'female', age: 4 }
|
|
|
|
],
|
|
|
|
'age'
|
|
|
|
),
|
|
|
|
false
|
|
|
|
);
|
|
|
|
```
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
`truthCheck([{"name": "Pete", "onBoat": true}, {"name": "Repeat", "onBoat": true}, {"name": "FastForward", "onBoat": null}], "onBoat")` 应返回 false。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
|
|
```js
|
2020-12-16 00:37:30 -07:00
|
|
|
assert.strictEqual(
|
|
|
|
truthCheck(
|
|
|
|
[
|
|
|
|
{ name: 'Pete', onBoat: true },
|
|
|
|
{ name: 'Repeat', onBoat: true },
|
2021-01-12 08:18:51 -08:00
|
|
|
{ name: 'FastForward', onBoat: null }
|
2020-12-16 00:37:30 -07:00
|
|
|
],
|
|
|
|
'onBoat'
|
|
|
|
),
|
|
|
|
false
|
|
|
|
);
|
|
|
|
```
|
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
`truthCheck([{"name": "Pete", "onBoat": true}, {"name": "Repeat", "onBoat": true, "alias": "Repete"}, {"name": "FastForward", "onBoat": true}], "onBoat")` 应返回 true。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
```js
|
|
|
|
assert.strictEqual(
|
|
|
|
truthCheck(
|
|
|
|
[
|
|
|
|
{ name: 'Pete', onBoat: true },
|
|
|
|
{ name: 'Repeat', onBoat: true, alias: 'Repete' },
|
2021-01-12 08:18:51 -08:00
|
|
|
{ name: 'FastForward', onBoat: true }
|
2020-12-16 00:37:30 -07:00
|
|
|
],
|
|
|
|
'onBoat'
|
|
|
|
),
|
|
|
|
true
|
|
|
|
);
|
2018-10-10 18:03:03 -04:00
|
|
|
```
|
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
`truthCheck([{"single": "yes"}], "single")` 应返回 true。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
```js
|
|
|
|
assert.strictEqual(truthCheck([{ single: 'yes' }], 'single'), true);
|
|
|
|
```
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
`truthCheck([{"single": ""}, {"single": "double"}], "single")` 应返回 false。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
```js
|
|
|
|
assert.strictEqual(
|
|
|
|
truthCheck([{ single: '' }, { single: 'double' }], 'single'),
|
|
|
|
false
|
|
|
|
);
|
|
|
|
```
|
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
`truthCheck([{"single": "double"}, {"single": undefined}], "single")` 应返回 false。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
```js
|
|
|
|
assert.strictEqual(
|
|
|
|
truthCheck([{ single: 'double' }, { single: undefined }], 'single'),
|
|
|
|
false
|
|
|
|
);
|
|
|
|
```
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
`truthCheck([{"single": "double"}, {"single": NaN}], "single")` 应返回 false。
|
2020-09-07 16:10:29 +08:00
|
|
|
|
2018-10-10 18:03:03 -04:00
|
|
|
```js
|
2020-12-16 00:37:30 -07:00
|
|
|
assert.strictEqual(
|
|
|
|
truthCheck([{ single: 'double' }, { single: NaN }], 'single'),
|
|
|
|
false
|
|
|
|
);
|
2018-10-10 18:03:03 -04:00
|
|
|
```
|
2020-08-13 17:24:35 +02:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
# --solutions--
|
|
|
|
|