Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript存储循环结果_Javascript_For Loop - Fatal编程技术网

javascript存储循环结果

javascript存储循环结果,javascript,for-loop,Javascript,For Loop,有没有办法将“for循环”的结果存储在变量中 例如,我想在一个div中显示两个名字kevin和elsa 我知道我可以做约翰。朋友[0]。名字,约翰。朋友[1]。名字 但是如果约翰有很多朋友,那就很难 现在变量friendName给了我一个名字,我明白为什么,但看不到解决方案 谢谢 function Person(name, age, friends) { this.name = name; this.age = age; this.friends = friends;

有没有办法将“for循环”的结果存储在变量中

例如,我想在一个div中显示两个名字kevin和elsa

我知道我可以做约翰。朋友[0]。名字,约翰。朋友[1]。名字

但是如果约翰有很多朋友,那就很难

现在变量friendName给了我一个名字,我明白为什么,但看不到解决方案

谢谢

function Person(name, age, friends) {
    this.name = name;
    this.age = age;
    this.friends = friends;

};

var john = new Person('john', 28, [new Person('elsa', 29, []), new Person('kevin', 31, [])]);

for (var i = 0; i < john.friends.length; i++) {
    var friendName = john.friends[i].name;
}

alert(friendName);
职能人员(姓名、年龄、朋友){
this.name=名称;
这个。年龄=年龄;
这个。朋友=朋友;
};
var john=新人('john',28,[新人('elsa',29,[]),新人('kevin',31,[]));
for(var i=0;i
由于您的
朋友
变量是一个数组,因此您可以使用以下一些变量:

在上面的示例中,将朋友映射到他们的名字,然后将生成一个由所有约翰朋友组成的空格分隔的字符串。

var-friendNames=[];//创建数组以保存好友名称
var friendNames = []; // create array to hold friend names

for(var i=0; i < john.friends.length; i++){    
    friendNames.push(john.friends[i].name); // add friend's name to the array
}

console.log(friendNames); // an array containing all of John's friends' names.
对于(var i=0;i
var-friendNames=[];//将它们的名称存储在本地数组中
for(var i=0;i
您可能需要一个名称数组(所有名称的列表)。声明
friendName=newarray()
friendName.push(john.friends[i].name)

var-friendName=new-Array();
for(var i=0;i

旧代码的问题是循环的每次迭代都会重新分配friendName。当
i=0
时,“elsa”被分配给friendName。当
i=1
时,“kevin”被重新分配给friendName


此外,javascript不具有块作用域;这就像调用
var-friendName='elsa';var-friendName='kevin'。不会破坏javascript引擎,但请注意这一点。最好像其他人和我提到的那样,将friendName声明为循环上方的数组。

这正是我刚才回答的问题,一直到变量名和日志调用。问题是。。。是巧合还是故意的?多亏了你们,这正是我想要的!我想问你到底想完成什么?由于您可以通过调用
john.friends
来获取
john
的好友,因此仅使用另一个指向这些好友的变量是多余的。Mmmmm我不理解map方法返回给我这样的数组:[“”,“”]@user1521149 Answer updated-我没有在回调中包含参数。道歉。
var friendNames = []; // create array to hold friend names

for(var i=0; i < john.friends.length; i++){    
    friendNames.push(john.friends[i].name); // add friend's name to the array
}

console.log(friendNames); // an array containing all of John's friends' names.
var friendNames = []; // store their names within a local array

for(var i = 0; i < john.friends.length; i++){
    friendNames.push(john.friends[i].name);
}

console.log(friendNames); // log to the browser (readability) instead of alert
var friendName = new Array();
for (var i = 0; i < john.friends.length; i++) {
    friendName.push(john.friends[i].name);
    //or friendName[i] = john.friends[i].name;
}
//friendName is now an array of names. Use it as you need (the last line is useful for debugging)
for (i = 0; i < friendName.length; i++) alert(friendName[i]);