【问题标题】:for...in key values instanced object instead forEach in JavaScriptfor...in 键值实例对象而不是 JavaScript 中的 forEach
【发布时间】:2018-10-02 13:58:07
【问题描述】:

有没有什么方法可以代替forEach 使用 for...in 键值实例对象?使用forEach 对我来说很容易,但我正在寻找使用 for...in 来实现它。

我为每个人都做了这个:

function Person(fullName, gender, city) {
    this.fullName = fullName;
    this.gender = gender;
    this.city = city;
}

var person01 = new Person("Nancy", "Female", "Los Angeles");
var person02 = new Person("James", "Male", "New York");
var person03 = new Person("Lucia", "Female", "Santa Barbara");


//To do the loop
var persons = [
    {fullName: "Nancy", gender: "Female", city: "Los Angeles"},
    {fullName: "James", gender: "Male", city: "New York"},
    {fullName: "Lucia", gender: "Female", city: "Santa Barbara"},
]

function listNames(myObject) {

    persons.forEach(function(obj) {
        console.log(obj.fullName);  
    });
}

listNames(persons);
//Nancy, James, Lucia

这种方式可行,但我需要了解它的工作原理。

【问题讨论】:

标签: javascript object foreach constructor for-in-loop


【解决方案1】:

尝试以下方法:

for(var key in myObject){
  console.log(myObject[key].fullName);
}

工作示例:

function Person(fullName, gender, city) {
    this.fullName = fullName;
    this.gender = gender;
    this.city = city;
}

var person01 = new Person("Nancy", "Female", "Los Angeles");
var person02 = new Person("James", "Male", "New York");
var person03 = new Person("Lucia", "Female", "Santa Barbara");


//To do the loop
var persons = [
    {fullName: "Nancy", gender: "Female", city: "Los Angeles"},
    {fullName: "James", gender: "Male", city: "New York"},
    {fullName: "Lucia", gender: "Female", city: "Santa Barbara"},
]

function listNames(myObject) {
  for(var key in myObject){
    console.log(myObject[key].fullName);
  }
}

listNames(persons);

【讨论】:

  • 我不会在这里选择“for in-loop”。相反,我会使用“for of”,它直接循环遍历值而不是键。检查stackoverflow.com/questions/500504/… 是否有问题。
  • @Teemoh,但 OP 在问题中提到他希望通过 for in 解决问题
  • 是的,我知道,我刚刚也在这个问题上写了评论
  • 谢谢大家!那很完美。您是否认为有必要使用包含对象的数组?我可以只对变量执行此操作吗?我不能,不是吗? @马蒙
猜你喜欢
  • 2023-03-29
  • 2011-11-06
  • 2018-01-02
  • 2017-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多