2018-10-10 18:03:03 -04:00
|
|
|
---
|
|
|
|
id: a10d2431ad0c6a099a4b8b52
|
2021-03-14 21:20:39 -06:00
|
|
|
title: 一切都是True
|
2018-10-10 18:03:03 -04:00
|
|
|
challengeType: 5
|
2020-09-07 16:10:29 +08:00
|
|
|
forumTopicId: 16011
|
2021-01-13 03:31:00 +01:00
|
|
|
dashedName: everything-be-true
|
2018-10-10 18:03:03 -04:00
|
|
|
---
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
# --description--
|
|
|
|
|
2021-03-14 21:20:39 -06:00
|
|
|
检查谓词(第二个参数)在集合(第一个参数)的所有元素是否为 <dfn>truthy</dfn>。
|
2020-12-16 00:37:30 -07:00
|
|
|
|
2021-03-14 21:20:39 -06:00
|
|
|
换句话说,你将获得一个对象的数组集合。 如果数组中的每个对象里,`pre` 对应属性值均为 `truthy`,则返回 `true`。 否则,返回 `false` 。
|
2020-12-16 00:37:30 -07:00
|
|
|
|
2021-03-14 21:20:39 -06:00
|
|
|
JavaScript 中,如果一个值在 Boolean 的上下文中的执行结果为 `true`,那么我们称这个值是 `truthy` 的。
|
2020-12-16 00:37:30 -07:00
|
|
|
|
2021-03-14 21:20:39 -06:00
|
|
|
别忘了,你可以使用点号表示法或方括号表示法(`[]`)来访问对象的属性。
|
2020-12-16 00:37:30 -07:00
|
|
|
|
|
|
|
# --hints--
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2022-03-23 19:52:04 +05:30
|
|
|
`truthCheck([{name: "Quincy", role: "Founder", isBot: false}, {name: "Naomi", role: "", isBot: false}, {name: "Camperbot", role: "Bot", isBot: true}], "isBot")` 应该返回 `false`。
|
2020-12-16 00:37:30 -07:00
|
|
|
|
|
|
|
```js
|
2022-03-23 19:52:04 +05:30
|
|
|
assert.strictEqual(truthCheck(
|
|
|
|
[
|
|
|
|
{ name: "Quincy", role: "Founder", isBot: false },
|
|
|
|
{ name: "Naomi", role: "", isBot: false },
|
|
|
|
{ name: "Camperbot", role: "Bot", isBot: true }
|
|
|
|
],
|
|
|
|
"isBot"), false);
|
2020-12-16 00:37:30 -07:00
|
|
|
```
|
|
|
|
|
2022-03-23 19:52:04 +05:30
|
|
|
`truthCheck([{name: "Quincy", role: "Founder", isBot: false}, {name: "Naomi", role: "", isBot: false}, {name: "Camperbot", role: "Bot", isBot: true}], "name")` 应该返回 `true`。
|
2020-12-16 00:37:30 -07:00
|
|
|
|
|
|
|
```js
|
2022-03-23 19:52:04 +05:30
|
|
|
assert.strictEqual(truthCheck(
|
|
|
|
[
|
|
|
|
{ name: "Quincy", role: "Founder", isBot: false },
|
|
|
|
{ name: "Naomi", role: "", isBot: false },
|
|
|
|
{ name: "Camperbot", role: "Bot", isBot: true }
|
|
|
|
],
|
|
|
|
"name"), true);
|
2018-10-10 18:03:03 -04:00
|
|
|
```
|
|
|
|
|
2022-03-23 19:52:04 +05:30
|
|
|
`truthCheck([{name: "Quincy", role: "Founder", isBot: false}, {name: "Naomi", role: "", isBot: false}, {name: "Camperbot", role: "Bot", isBot: true}], "role")` 应该返回 `false`。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
```js
|
2022-03-23 19:52:04 +05:30
|
|
|
assert.strictEqual(truthCheck(
|
|
|
|
[
|
|
|
|
{ name: "Quincy", role: "Founder", isBot: false },
|
|
|
|
{ name: "Naomi", role: "", isBot: false },
|
|
|
|
{ name: "Camperbot", role: "Bot", isBot: true }
|
|
|
|
],
|
|
|
|
"role"), false);
|
2020-12-16 00:37:30 -07:00
|
|
|
```
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2022-03-23 19:52:04 +05:30
|
|
|
`truthCheck([{name: "Pikachu", number: 25, caught: 3}, {name: "Togepi", number: 175, caught: 1}], "number")` 应该返回 `true`。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
|
|
```js
|
2022-03-23 19:52:04 +05:30
|
|
|
assert.strictEqual(truthCheck(
|
|
|
|
[
|
|
|
|
{ name: "Pikachu", number: 25, caught: 3 },
|
|
|
|
{ name: "Togepi", number: 175, caught: 1 },
|
|
|
|
],
|
|
|
|
"number"), true);
|
2020-12-16 00:37:30 -07:00
|
|
|
```
|
|
|
|
|
2022-03-23 19:52:04 +05:30
|
|
|
`truthCheck([{name: "Pikachu", number: 25, caught: 3}, {name: "Togepi", number: 175, caught: 1}, {name: "MissingNo", number: NaN, caught: 0}], "caught")` 应该返回 `false`。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
```js
|
2022-03-23 19:52:04 +05:30
|
|
|
assert.strictEqual(truthCheck(
|
|
|
|
[
|
|
|
|
{ name: "Pikachu", number: 25, caught: 3 },
|
|
|
|
{ name: "Togepi", number: 175, caught: 1 },
|
|
|
|
{ name: "MissingNo", number: NaN, caught: 0 },
|
|
|
|
],
|
|
|
|
"caught"), false);
|
2018-10-10 18:03:03 -04:00
|
|
|
```
|
|
|
|
|
2022-03-23 19:52:04 +05:30
|
|
|
`truthCheck([{name: "Pikachu", number: 25, caught: 3}, {name: "Togepi", number: 175, caught: 1}, {name: "MissingNo", number: NaN, caught: 0}], "number")` 应该返回 `false`。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
```js
|
2022-03-23 19:52:04 +05:30
|
|
|
assert.strictEqual(truthCheck(
|
|
|
|
[
|
|
|
|
{ name: "Pikachu", number: 25, caught: 3 },
|
|
|
|
{ name: "Togepi", number: 175, caught: 1 },
|
|
|
|
{ name: "MissingNo", number: NaN, caught: 0 },
|
|
|
|
],
|
|
|
|
"number"), false);
|
2020-12-16 00:37:30 -07:00
|
|
|
```
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2022-03-23 19:52:04 +05:30
|
|
|
`truthCheck([{name: "Quincy", username: "QuincyLarson"}, {name: "Naomi", username: "nhcarrigan"}, {name: "Camperbot"}], "username")` 应该返回 `false`。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
```js
|
2022-03-23 19:52:04 +05:30
|
|
|
assert.strictEqual(truthCheck(
|
|
|
|
[
|
|
|
|
{ name: "Quincy", username: "QuincyLarson" },
|
|
|
|
{ name: "Naomi", username: "nhcarrigan" },
|
|
|
|
{ name: "Camperbot" }
|
|
|
|
],
|
|
|
|
"username"), false);
|
2020-12-16 00:37:30 -07:00
|
|
|
```
|
|
|
|
|
2022-03-23 19:52:04 +05:30
|
|
|
`truthCheck([{name: "freeCodeCamp", users: [{name: "Quincy"}, {name: "Naomi"}]}, {name: "Code Radio", users: [{name: "Camperbot"}]}, {name: "", users: []}], "users")` 应该返回 `true`。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
```js
|
2022-03-23 19:52:04 +05:30
|
|
|
assert.strictEqual(truthCheck(
|
|
|
|
[
|
|
|
|
{ name: "freeCodeCamp", users: [{ name: "Quincy" }, { name: "Naomi" }] },
|
|
|
|
{ name: "Code Radio", users: [{ name: "Camperbot" }] },
|
|
|
|
{ name: "", users: [] },
|
|
|
|
],
|
|
|
|
"users"), true);
|
2020-12-16 00:37:30 -07:00
|
|
|
```
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2022-03-23 19:52:04 +05:30
|
|
|
`truthCheck([{id: 1, data: {url: "https://freecodecamp.org", name: "freeCodeCamp"}}, {id: 2, data: {url: "https://coderadio.freecodecamp.org/", name: "CodeRadio"}}, {id: null, data: {}}], "data")` 应该返回 `true`。
|
2020-09-07 16:10:29 +08:00
|
|
|
|
2018-10-10 18:03:03 -04:00
|
|
|
```js
|
2022-03-23 19:52:04 +05:30
|
|
|
assert.strictEqual(truthCheck(
|
|
|
|
[
|
|
|
|
{ id: 1, data: { url: "https://www.freecodecamp.org", name: "freeCodeCamp" } },
|
|
|
|
{ id: 2, data: { url: "https://coderadio.freecodecamp.org/", name: "CodeRadio" } },
|
|
|
|
{ id: null, data: {} },
|
|
|
|
],
|
|
|
|
"data"), true);
|
|
|
|
```
|
|
|
|
|
|
|
|
`truthCheck([{id: 1, data: {url: "https://freecodecamp.org", name: "freeCodeCamp"}}, {id: 2, data: {url: "https://coderadio.freecodecamp.org/", name: "CodeRadio"}}, {id: null, data: {}}], "id")` 应该返回 `false`。
|
|
|
|
|
|
|
|
```js
|
|
|
|
assert.strictEqual(truthCheck(
|
|
|
|
[
|
|
|
|
{ id: 1, data: { url: "https://www.freecodecamp.org", name: "freeCodeCamp" } },
|
|
|
|
{ id: 2, data: { url: "https://coderadio.freecodecamp.org/", name: "CodeRadio" } },
|
|
|
|
{ id: null, data: {} },
|
|
|
|
],
|
|
|
|
"id"), false);
|
2018-10-10 18:03:03 -04:00
|
|
|
```
|
2020-08-13 17:24:35 +02:00
|
|
|
|
2021-01-13 03:31:00 +01:00
|
|
|
# --seed--
|
|
|
|
|
|
|
|
## --seed-contents--
|
|
|
|
|
|
|
|
```js
|
|
|
|
function truthCheck(collection, pre) {
|
|
|
|
return pre;
|
|
|
|
}
|
|
|
|
|
2022-03-23 19:52:04 +05:30
|
|
|
truthCheck([{name: "Quincy", role: "Founder", isBot: false}, {name: "Naomi", role: "", isBot: false}, {name: "Camperbot", role: "Bot", isBot: true}], "isBot");
|
2021-01-13 03:31:00 +01:00
|
|
|
```
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
# --solutions--
|
|
|
|
|
2021-01-13 03:31:00 +01:00
|
|
|
```js
|
|
|
|
function truthCheck(collection, pre) {
|
|
|
|
return collection.every(function(e) { return e[pre]; });
|
|
|
|
}
|
|
|
|
```
|