相关疑难解决方法(0)

JavaScript是否保证对象属性顺序?

如果我创建这样的对象:

var obj = {};
obj.prop1 = "Foo";
obj.prop2 = "Bar";
Run Code Online (Sandbox Code Playgroud)

生成的对象总是这样吗?

{ prop1 : "Foo", prop2 : "Bar" }
Run Code Online (Sandbox Code Playgroud)

也就是说,属性是否与我添加它们的顺序相同?

javascript object

584
推荐指数
11
解决办法
20万
查看次数

元素在"for(... in ...)"循环中排序

Javascript中的"for ... in"循环是否按照声明的顺序循环遍历hashtables/elements?是否有一个浏览器没有按顺序执行?
我想要使​​用的对象将被声明一次,永远不会被修改.

假设我有:

var myObject = { A: "Hello", B: "World" };
Run Code Online (Sandbox Code Playgroud)

我进一步使用它们:

for (var item in myObject) alert(item + " : " + myObject[item]);
Run Code Online (Sandbox Code Playgroud)

在大多数体面的浏览器中,我可以期待'A:'你好''总是先来'B:'世界"吗?

javascript for-loop

196
推荐指数
5
解决办法
9万
查看次数

从javascript对象获取第一个键

假设我们有以下javascript对象:

ahash = {"one": [1,2,3], "two": [4,5,6]}
Run Code Online (Sandbox Code Playgroud)

有没有函数,它返回对象中第一个键的值?(我不知道密钥名称,我只想获得第一把钥匙的价值).

javascript

113
推荐指数
7
解决办法
13万
查看次数

未捕获的TypeError:Object.values不是函数JavaScript

我有一个简单的对象,如下所示:

var countries = {
    "Argentina":1,
    "Canada":2,
    "Egypt":1,
};
Run Code Online (Sandbox Code Playgroud)

我需要创建两个数组.第一个数组是来自对象的所有键的数组.我创建了这个数组:

var labels = Object.keys(countries);
Run Code Online (Sandbox Code Playgroud)

这很好用.我获得了一系列国家.现在当我尝试从值创建数组时...

var labels = Object.values(countries);
Run Code Online (Sandbox Code Playgroud)

我收到此错误: Uncaught TypeError: Object.values is not a function JavaScript

我不知道我做错了什么.我console.log countries在声明之前labels和之后的console.log 并且对象保持不变.我该如何正确使用Object.values()

javascript arrays cross-browser object node.js

73
推荐指数
3
解决办法
7万
查看次数

如何在javascript中获取对象的第一个成员

可能重复:
访问对象的第一个属性

我有一个像这样的javascript对象:

var list = {
    item1: "a",
    item2: "b",
    item3: "c",
    item4: "d"
};
Run Code Online (Sandbox Code Playgroud)

在JS中使用反射,我可以说list ["item1"]以编程方式获取或设置每个成员,但我不想依赖成员的名称(对象可以扩展).所以我想得到这个对象的第一个成员.

如果我编写以下代码,则返回undefined.谁知道如何做到这一点?

var first = list[0]; // this returns undefined
Run Code Online (Sandbox Code Playgroud)

javascript reflection

6
推荐指数
2
解决办法
2万
查看次数

从枚举中获取第一个枚举项

是否可以在打字稿中获取枚举的第一项?

例如,Option.All在此枚举中:

enum Option {
    All = "all",
    Mine = "mine",
}
Run Code Online (Sandbox Code Playgroud)

尝试过,但无法编译:

const first: Option = Option[0]; // first should be All. This won't compile - Property '0' does not exist on type 'typeof Option'.
Run Code Online (Sandbox Code Playgroud)

typescript

5
推荐指数
1
解决办法
3425
查看次数

JSON对象根据位置返回值

我有一个JSON对象

var obj = {"firstName":"John", "lastName":"Doe"}
Run Code Online (Sandbox Code Playgroud)

我可以使用obj.firstName等返回值.但在我的情况下,我可能不知道标题的名称,但我知道它的位置.有没有办法可以使用它的位置返回值?例如obj.1

javascript arrays json object

3
推荐指数
1
解决办法
578
查看次数

如何访问匿名 JSON 属性?

我有以下 JSON:

{
    "Files": {
             "Lines": {
                    "198": {
                           "firstline": "sometext"
                    }
             }
    }
}
Run Code Online (Sandbox Code Playgroud)

值“198”是动态变化的。如何在不知道以下代码中的“198”的情况下轻松访问“firstline”属性:

var schema = JSON.parse(fileContents); 
console.log(schema.Files.Lines.????.firstline);
Run Code Online (Sandbox Code Playgroud)

javascript json node.js

2
推荐指数
1
解决办法
4836
查看次数

在 JavaScript 中,是否有任何方法可以在不使用点符号或方括号符号的情况下获取对象的属性?

假设我有一个简单的对象a = {b: 2}。我知道有两种方法来获取 a 的属性 b 的值:

点符号:a.b // 2

括号表示法:a['b'] // 2

除了实用性之外,是否存在任何方法可以从对象 a 获取 b 的值而不使用这两种方法(点表示法和括号表示法)中的任何一种?MDN 关于属性访问器的页面仅列出了 2 个方法。


这只是我的好奇心。我知道存在一些晦涩的方法来调用不带括号的函数,例如

parseInt`5.1`
Run Code Online (Sandbox Code Playgroud)

我想看看属性访问是否可以做类似的晦涩难懂的事情。

javascript syntax

2
推荐指数
1
解决办法
1222
查看次数