Javascript Object.keys=for循环

Javascript Object.keys=for循环,javascript,Javascript,我正在构建一个使用localstorage输出表的动态表,我在网上找到了一些代码,现在我也在尝试找出每一行 我很难描述这段代码,我的主要问题是理解Object.key方法在做什么(我在表上有什么作用),这只是oof循环的另一种形式吗?我也很难弄清楚data.foreach(函数(对象)行对表做了什么 //Employee Database "Localstorage" if(localStorage.getItem("Employee") == null) { var employeeL

我正在构建一个使用localstorage输出表的动态表,我在网上找到了一些代码,现在我也在尝试找出每一行

我很难描述这段代码,我的主要问题是理解Object.key方法在做什么(我在表上有什么作用),这只是oof循环的另一种形式吗?我也很难弄清楚data.foreach(函数(对象)行对表做了什么

//Employee Database "Localstorage"
if(localStorage.getItem("Employee") == null) {
    var employeeList = [];
    employeeList.push (new Employee("Simon", "Male", "HR", 1999, "SM1@cbs.dk"));
    employeeList.push (new Employee("Mads", "Male","IT", 1999,  "MS@cbs.dk"));
    employeeList.push (new Employee("Jessica", "Female", "Sales",1998, "JT@cbs.dk"));
    employeeList.push (new Employee("Benjamin", "Male","IT", 1997, "BN@cbs.dk"));

    var employeeListString = JSON.stringify(employeeList);
    localStorage.setItem("Employee", employeeListString);
    document.querySelector("#employees").appendChild(buildTable(employeeList));
} else {
    var employeeList = JSON.parse(localStorage.getItem("Employee"));
}

function buildTable(data) {
    // creates variable "table"
    let table = document.createElement("table");

        // Create table head and body
        table.appendChild(document.createElement("thead"));
        table.appendChild(document.createElement("tbody"));

        let fields = Object.keys(data[0]);
        let headRow = document.createElement("tr");
        fields.forEach(function (field) {
            let headCell = document.createElement("th");
            headCell.textContent = field;
            headRow.appendChild(headCell);
        });
        table.querySelector("thead").appendChild(headRow);
        data.forEach(function (object) {
            let row = document.createElement("tr");
            fields.forEach(function (field) {
                let cell = document.createElement("td");
                cell.textContent = object[field];
                if (typeof object[field] == "number") {
                    cell.style.textAlign = "left";
                }
                row.appendChild(cell);
            });
            table.querySelector("tbody").appendChild(row);
        });
        return table;

    }

document.querySelector("#employees").appendChild(buildTable(employeeList));

MDN网站上提供了大量信息,您可以在这里找到类似问题的答案;我强烈建议您使用它

Object.keys()
方法返回给定对象自身可枚举属性名称的数组,其顺序与我们在普通循环中得到的顺序相同

forEach()
方法为每个数组元素执行一次提供的函数


<>太长了,读不下去了,这是一种不同的循环方式。关于它们之间的差异,当你可以选择一个,而他们做得比我好得多;TL;DR和方法过于简化,它的可读性和风格与性能。

< P>假设数据[0 ]包含一个像

的对象。
const myDataAt0={
x:5,
y:10
};
log(Object.keys(myDataAt0));
myDataAt0['z']=15

console.log(Object.keys(myDataAt0));
数据的声明在哪里变量?啊,是的,数据是一组雇员(对象)很抱歉,我在Now中编辑了代码。如果您还没有学习Javascript基本-中间概念,那么您需要学习Javascript基本-中间概念才能理解这一点。但是,您迄今为止所学的知识似乎让您误入歧途,只教给了您具体的东西,而没有教给您核心基础知识。MDN(如回答和其他评论中所述)这是一个很好的开始,但你应该做的是尝试和研究,因为你试图知道到底该做什么