javascript对象属性/数组操作

标签 javascript arrays object

一些对象属性/数组操作。是否有更好的语法来完成第 2 部分和第 3 部分?

// 1. create object and add element/arrays
var myObject = {};
myObject["123"] = { "A": 123, "B": 456 };  // add 
myObject["123"] = { "C": 123, "D": 456 };  // add more elements to array in element!
myObject["124"] = { "A": 123, "B": 456 };
myObject["125"] = { "A": 123, "B": 456 };
console.log(myObject);

// 2. delete first property in array
for (property in myObject){
        delete myObject[property];
        break;
    }

// 3. show first remaining property
for (property in myObject){
        x = property;
        console.log("first remaining property is " + x );
        break;
    }

最佳答案

我不确定为什么您只对对象文字语法进行了一半(JSON 模仿对象文字声明),但它也为您创建了一个错误。您在第二个作业中覆盖了 myObject["123"]。

您可以更简单地将整个第 1 节写成:

var myObject = {
    "123": {
        "A": 123,
        "B": 456,
        "C": 123,
        "D": 456
    },
    "124": {
        "A": 123,
        "B": 456
    },
    "125": {
        "A": 123,
        "B": 456
    }
}

第二和第三,没有“数组中的第一个属性”这样的东西。对于编写 javascript 的人(不仅是新手,而且已经编写多年的人)来说,这是一个很常见的错误。

在任何情况下对象的任何部分永远“第一”或“第二”或在对象中有任何顺序。 ECMA-262 规范中清楚地概述了这一点。浏览器 vendor 有时会适应这种行为,这就是为什么有时“它有效”的原因。

这是因为对象不是数组,以后也不会。如果你想让事情按照数组的顺序排列,你需要使用数组。请问,文档对象中的“第一个”元素是什么?显然这是一个愚蠢的问题,但它证明了这一点。对象不保持顺序,数组就是这样做的。

因此为此使用一个数组。方括号表示一个数组,它不将字符串作为键(这是对象所做的事情)。更令人困惑的是,数组是对象,因此它们可以像对象一样运行 - 不要混淆并认为对象是数组。

关于javascript对象属性/数组操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8675893/

相关文章:

java - 如何从具有多个数组的对象创建 ListView

python - 区分组中的对象

python - 避免创建新的方法对象

javascript - 比较日期从 - 到

javascript - Electron.js错误 “require”没有在index.html的<script>标记中定义

c - 查找二维数组中特定元素的总数

javascript - 使用 javascript/typescript 创建一个对象数组,使其具有 3 个数组的所有可能性组合

c - 分配给指针的结构数组。发生了什么?

javascript - 如何使用 Javascript 停止页面刷新

javascript - 在 QML Javascript 中调用 QCursor::setPos