gpt4 book ai didi

javascript - 我的函数中的值从哪里来?

转载 作者:行者123 更新时间:2023-12-02 17:18:14 25 4
gpt4 key购买 nike

我目前正在 http://nodeschool.io 进行函数式 JavaScript 练习。 .

我有以下练习:

Return a function that takes a list of valid users, and returns a function that returns true if all of the supplied users exist in the original list of users.

You only need to check that the ids match.

示例:

var goodUsers = [
{ id: 1 },
{ id: 2 },
{ id: 3 }
];

// `checkUsersValid` is the function you'll define

var testAllValid = checkUsersValid(goodUsers);

testAllValid([
{ id: 2 },
{ id: 1 }
]);

// => true

testAllValid([
{ id: 2 },
{ id: 4 },
{ id: 1 }
]);

// => false

参数:

  • goodUsers:有效用户列表

Use array.some and array.every to check whether every user passed to your returned function exists in the array passed to the exported function.

任务答案是:

function checkUsersValid(goodUsers) {
return function (submittedUsers) {
return submittedUsers.every(function (submittedUser) {
return goodUsers.some(function (goodUser) {
return submittedUser.id === goodUser.id;
});
});
};
}

module.exports = checkUsersValid;

但是,我不明白 subscribedUsers 的值来自哪里:

var testAllValid = checkUsersValid(goodUsers);

该函数的调用方式为:

testAllValid([
{ id: 2 },
{ id: 1 }
]);

// => true

上面不应该等同于:

checkUsersValid([
{id:2},
{id:1}
]);

在这种情况下,我从哪里获取 subscribedUsers 的值?

最佳答案

我们知道:

function checkUsersValid(goodUsers) {
return function (submittedUsers) {
return submittedUsers.every(function (submittedUser) {
return goodUsers.some(function (goodUser) {
return submittedUser.id === goodUser.id;
});
});
};
}

我们还知道:

var goodUsers = [
{ id: 1 },
{ id: 2 },
{ id: 3 }
];

var testAllValid = checkUsersValid(goodUsers);

因此通过替换:

var goodUsers = [
{ id: 1 },
{ id: 2 },
{ id: 3 }
];

var testAllValid = function (submittedUsers) {
return submittedUsers.every(function (submittedUser) {
return goodUsers.some(function (goodUser) {
return submittedUser.id === goodUser.id;
});
});
};

最后,我们调用:

testAllValid([
{ id: 2 },
{ id: 1 }
]);

它的评估结果是什么?

var goodUsers = [
{ id: 1 },
{ id: 2 },
{ id: 3 }
];

var submittedUsers = [
{ id: 2 },
{ id: 1 }
];

// it evaluates to:

submittedUsers.every(function (submittedUser) {
return goodUsers.some(function (goodUser) {
return submittedUser.id === goodUser.id;
});
});

如果您评估它,您会发现每个 subscribedUser 也是一个 goodUser。因此答案是true

关于javascript - 我的函数中的值从哪里来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24226900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com