相关疑难解决方法(0)

如何确定两个JavaScript对象的相等性?

严格的相等运算符将告诉您两个对象类型是否相等.但是,有没有办法判断两个对象是否相等,就像 Java中的哈希码一样

Stack Overflow问题JavaScript中是否有任何类型的hashCode函数?类似于这个问题,但需要更多的学术答案.上面的场景说明了为什么需要有一个,我想知道是否有任何等效的解决方案.

javascript equals object hashcode

599
推荐指数
23
解决办法
45万
查看次数

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万
查看次数

如何在Javascript中访问对象的第一个属性?

是否有一种优雅的方式来访问对象的第一个属性...

  1. 你不知道你的房产名称的地方
  2. 不使用像for .. injQuery 那样的循环$.each

例如,我需要在foo1不知道foo1名称的情况下访问对象:

var example = {
    foo1: { /* stuff1 */},
    foo2: { /* stuff2 */},
    foo3: { /* stuff3 */}
};
Run Code Online (Sandbox Code Playgroud)

javascript object

568
推荐指数
13
解决办法
42万
查看次数

获取javascript对象中的最后一项

如果我有一个像这样的对象:

{ 'a' : 'apple', 'b' : 'banana', 'c' : 'carrot' }
Run Code Online (Sandbox Code Playgroud)

如果我事先不知道列表上升到'c',除了遍历对象之外,有没有办法获取对象中的最后一项(例如'carrot')?

javascript object

81
推荐指数
9
解决办法
10万
查看次数

从Javascript对象中选择随机属性

假设你有一个Javascript对象,如{'cat':'meow','dog':'woof'...}是否有一种更简洁的方法从对象中选择一个随机属性,而不是我想出的这种漫长的方式:

function pickRandomProperty(obj) {
    var prop, len = 0, randomPos, pos = 0;
    for (prop in obj) {
        if (obj.hasOwnProperty(prop)) {
            len += 1;
        }
    }
    randomPos = Math.floor(Math.random() * len);
    for (prop in obj) {
        if (obj.hasOwnProperty(prop)) {
            if (pos === randomPos) {
                return prop;
            }
            pos += 1;
        }
    }       
}
Run Code Online (Sandbox Code Playgroud)

javascript

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

按索引访问非数字对象属性?

如果我有这样的数组:

var arr = ['one','two','three'];
Run Code Online (Sandbox Code Playgroud)

我这样做可以访问不同的部分:

console.log(arr[1]);
Run Code Online (Sandbox Code Playgroud)

如何按顺序而不是按键访问对象属性?

例:

var obj = {
    'something' : 'awesome',
    'evenmore'  : 'crazy'
},
jbo = {
    'evenmore'  : 'crazy',
    'something' : 'awesome'
};
Run Code Online (Sandbox Code Playgroud)

我如何获得每个对象的第一个属性 - 来自obj"甚至更多"的东西jbo- 没有显式使用属性名称?

现在,你们中的一些人似乎认为我是在做以下事情:

console.log(obj['something']);
Run Code Online (Sandbox Code Playgroud)

事实并非如此,我特意寻找目标指数,就像第一个例子一样 - 如果可能的话.

javascript arrays

72
推荐指数
4
解决办法
9万
查看次数

ES6是否为对象属性引入了明确定义的枚举顺序?

ES6是否为对象属性引入了明确定义的枚举顺序?

var o = {
  '1': 1,
  'a': 2,
  'b': 3
}

Object.keys(o); // ["1", "a", "b"] - is this ordering guaranteed by ES6?

for(let k in o) {
  console.log(k);
} // 1 2 3 - is this ordering guaranteed by ES6?
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6

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

我可以以相反的顺序循环浏览javascript对象吗?

所以我有一个像这样的JavaScript对象:

foo = {
  "one": "some",
  "two": "thing",
  "three": "else"
};
Run Code Online (Sandbox Code Playgroud)

我可以循环这样:

for (var i in foo) {
  if (foo.hasOwnProperty(i)) {
    // do something
  }
}
Run Code Online (Sandbox Code Playgroud)

这将遍历的顺序性one> two> three.

不过有时我需要以相反的顺序穿过去,所以我希望做同样的循环,但three> two> one.

问题:
是否存在"对象反转"功能.如果它是一个数组,我可以反转或构建一个新数组,unshift但是当我需要反向循环它的属性时,我迷失了对象的操作.有任何想法吗?

谢谢!

javascript reverse for-loop properties object

41
推荐指数
4
解决办法
5万
查看次数

EmberJS一次设置多个属性

我通过一系列设置调用设置了很多属性,例如

this.set('prop1', value1);
this.set('prop2', value2);
.......
Run Code Online (Sandbox Code Playgroud)

有没有办法在一次调用中执行此操作(类似于创建对象时)?例如

this.setMultiple({prop1: value1, prop2: value2});
Run Code Online (Sandbox Code Playgroud)

我仍然没有完全理解Ember的继承模型.也许是沿袭的reopen

ember.js

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

JavaScript中的有序哈希

JavaScript对象没有为属性存储订单(根据规范).Firefox似乎在使用for...in循环时保留属性定义的顺序.这种行为是我可以依赖的吗?如果没有,那么在某处实现有序哈希类型的JavaScript代码?

javascript

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