javascript:动态添加一个不工作的属性
下面是一个大文件的片段,使用node.js编写。 用户对象数组已发送到函数。如果为该用户定义了频率,我想将其作为属性添加到用户对象中,但这是徒劳的javascript:动态添加一个不工作的属性,javascript,node.js,Javascript,Node.js,下面是一个大文件的片段,使用node.js编写。 用户对象数组已发送到函数。如果为该用户定义了频率,我想将其作为属性添加到用户对象中,但这是徒劳的 var usersFromActiveDomains = []; function sample (users) { _.forEach ( users , function ( user ) { var freq = getFrequency(user); if(freq) { user.frequency =
var usersFromActiveDomains = [];
function sample (users) {
_.forEach ( users , function ( user ) {
var freq = getFrequency(user);
if(freq) {
user.frequency = freq;
usersFromActiveDomains.push(user);
console.log('user', user);
}
});
return usersFromActiveDomains;
}
很难说这是怎么回事,因为我们没有所有的事实。然而,我猜“freq”返回false,从而使“usersfromactivedomes”为空。我制作了一个工作JSFIDLE供您参考: 代码如下:
var usersFromActiveDomains = [],
baseUsers = [
{
name: "sam"
},
{
name: "julie"
},
{
name: "jimbolina"
}
],
getFrequency = function (u) {
return u.name.length;
},
process = function (users) {
_.forEach ( users , function ( user ) {
console.log(user);
var freq = getFrequency(user);
if(freq) {
user.frequency = freq;
usersFromActiveDomains.push(user);
console.log('user', user);
}
});
return usersFromActiveDomains;
}
usersList2 = process(baseUsers);
console.log('baseUsers:',baseUsers);
console.log('usersFromActiveDomains:',usersFromActiveDomains);
console.log('usersList2:',usersList2);
我希望这能有所帮助。很难说这是怎么回事,因为我们没有所有的事实。然而,我猜“freq”返回false,从而使“usersfromactivedomes”为空。我制作了一个工作JSFIDLE供您参考: 代码如下:
var usersFromActiveDomains = [],
baseUsers = [
{
name: "sam"
},
{
name: "julie"
},
{
name: "jimbolina"
}
],
getFrequency = function (u) {
return u.name.length;
},
process = function (users) {
_.forEach ( users , function ( user ) {
console.log(user);
var freq = getFrequency(user);
if(freq) {
user.frequency = freq;
usersFromActiveDomains.push(user);
console.log('user', user);
}
});
return usersFromActiveDomains;
}
usersList2 = process(baseUsers);
console.log('baseUsers:',baseUsers);
console.log('usersFromActiveDomains:',usersFromActiveDomains);
console.log('usersList2:',usersList2);
我希望这会有所帮助。
user
是在迭代方法中创建的新对象;它不会更新用户
数组。您需要使用迭代和索引,并使用users[idx]
覆盖数组。谢谢remus,但是,我确实编辑了文章来更正我的问题。您的函数没有名称。你怎么称呼它?它是一个回调,而您没有显示代码的其余部分吗?是否定义了freq?Console.log进行确认。我不显示其余代码。编写了一个模拟我所面临问题的示例代码。为更可读的代码添加函数名。user
是迭代方法期间创建的新对象;它不会更新用户
数组。您需要使用迭代和索引,并使用users[idx]
覆盖数组。谢谢remus,但是,我确实编辑了文章来更正我的问题。您的函数没有名称。你怎么称呼它?它是一个回调,而您没有显示代码的其余部分吗?是否定义了freq?Console.log进行确认。我不显示其余代码。编写了一个模拟我所面临问题的示例代码。为更可读的代码添加函数名。我的函数从使用Mongoose构建的API接收的“用户”。因为猫鼬有DB模式,这有关系吗?这个问题还没有解决,作为一个天真的node.js开发人员,我认为我遗漏了一些基本点。“用户”只是在你的函数中定义的。这就是为什么我将用户分解成一组不同的数组-向您展示信息是如何存储的。无论如何,听起来你想把这些信息发回到服务器上,这样你的编辑就会存储在数据库中。如果没有关于您的环境和您正在尝试做什么的更多细节,恐怕我无法提供更多帮助。我的函数从使用Mongoose构建的API接收的“用户”。因为猫鼬有DB模式,这有关系吗?这个问题还没有解决,作为一个天真的node.js开发人员,我认为我遗漏了一些基本点。“用户”只是在你的函数中定义的。这就是为什么我将用户分解成一组不同的数组-向您展示信息是如何存储的。无论如何,听起来你想把这些信息发回到服务器上,这样你的编辑就会存储在数据库中。如果没有关于你的环境和你想做什么的更多细节,恐怕我帮不了你。