标签: object

如何在JavaScript中通过其属性获取对象的索引?

例如我有:

var Data = [
  { id_list: 1, name: 'Nick', token: '312312' },
  { id_list: 2, name: 'John', token: '123123' },
]
Run Code Online (Sandbox Code Playgroud)

然后我想通过例如排序/反转这个对象name.我得到这样的东西:

var Data = [
  { id_list: 2, name: 'John', token: '123123' },
  { id_list: 1, name: 'Nick', token: '312312' },
]
Run Code Online (Sandbox Code Playgroud)

现在我想知道带有属性的对象索引name='John'来获取属性令牌的值.

javascript arrays object

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

保存对象(数据持久性)

我创建了一个像这样的对象:

company1.name = 'banana' 
company1.value = 40
Run Code Online (Sandbox Code Playgroud)

我想保存这个对象.我怎样才能做到这一点?

python serialization object save pickle

206
推荐指数
4
解决办法
21万
查看次数

205
推荐指数
4
解决办法
55万
查看次数

可访问性不一致:参数类型比方法更难访问

我试图在两个表单之间传递一个对象(基本上是对当前登录用户的引用).目前,我在登录表单中有这些内容:

private ACTInterface oActInterface;

public void button1_Click(object sender, EventArgs e)
    {
        oActInterface = new ACTInterface(@"\\actserver\Database\Premier.pad",this.textUser.Text,this.textPass.Text);

        if (oActInterface.checkLoggedIn())
        {
            //user has authed against ACT, so we can carry on
            clients oClientForm = new clients(oActInterface);
            this.Hide();
            oClientForm.Show();
        }
        else...
Run Code Online (Sandbox Code Playgroud)

在下一个表格(客户)上,我有:

public partial class clients : Form
{
    private ACTInterface oActInt {get; set;}

    public clients(ACTInterface _oActInt)
Run Code Online (Sandbox Code Playgroud)

...导致我得到:

Error   1   Inconsistent accessibility: 
parameter type 'support.ACTInterface' is less accessible than method    
'support.clients.clients(support.ACTInterface)'  
c:\work\net\backup\support\support\clients.cs   20  16  support
Run Code Online (Sandbox Code Playgroud)

我真的不明白问题是什么 - 两个字段都是私有的,并且可以通过表单中的相关公共方法访问.谷歌搜索并没有真正帮助,因为它只是指向一个元素是公共的而另一个是私有的,这不是这里的情况.

有人帮忙吗?

c# object

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

向对象添加元素

我需要填充一个json文件,现在我有这样的东西:

{"element":{"id":10,"quantity":1}}
Run Code Online (Sandbox Code Playgroud)

我需要添加另一个"元素".我的第一步是将json放在Object类型中cart = JSON.parse,现在我需要添加新元素.我想我必须使用cart.push添加另一个元素,我试过这个:

var element = {};
element.push({ id: id, quantity: quantity });
cart.push(element);
Run Code Online (Sandbox Code Playgroud)

但是当我尝试做的时候我得到错误"对象没有方法推送" element.push,我认为我做了一些非常错误的事情,因为我没有在任何地方告诉"元素".

我怎样才能做到这一点?

编辑:对不起,我头脑中有很多困惑.

我认为在从数据中获取数据时我只能得到对象类型JSON.parse,但我首先得到了我在JSON中的内容.

放数组而不是对象解决了我的问题,我也在这里使用了很多建议,谢谢大家!

javascript object

200
推荐指数
9
解决办法
85万
查看次数

如何创建要添加到JavaScript对象变量的动态密钥

我正在尝试这样的事情,但这个例子不起作用.

jsObj = {};

for (var i = 1; i <= 10; i++) {
    jsObj{'key' + i} = 'example ' + 1;
}
Run Code Online (Sandbox Code Playgroud)

如何制作这样的动态密钥呢?

javascript object

196
推荐指数
1
解决办法
22万
查看次数

两个对象之间的通用深度差异

我有两个对象:oldObjnewObj.

数据oldObj用于填充表单,newObj是用户更改此表单中的数据并提交数据的结果.

两个对象都很深,即.它们具有对象或对象数组等属性 - 它们可以是n级深度,因此diff算法需要是递归的.

现在我需要不只是从弄清楚什么改变(如添加/更新/删除)oldObjnewObj,却怎么也最能代表它.

到目前为止,我的想法只是构建一个genericDeepDiffBetweenObjects方法,它将返回表单上的对象,{add:{...},upd:{...},del:{...}}但后来我想:其他人必须先需要它.

那么......有没有人知道一个库或一段代码可以做到这一点,并且可能有更好的方式来表示差异(以一种仍然是JSON可序列化的方式)?

更新:

我想到了一种更好的方式来表示更新的数据,使用相同的对象结构newObj,但将所有属性值转换为表单上的对象:

{type: '<update|create|delete>', data: <propertyValue>}
Run Code Online (Sandbox Code Playgroud)

所以,如果newObj.prop1 = 'new value'oldObj.prop1 = 'old value'它会设置returnObj.prop1 = {type: 'update', data: 'new value'}

更新2:

当我们得到数组的属性时,它会变得非常毛茸茸,因为数组[1,2,3]应该被计算为等于[2,3,1],这对于基于值的类型的数组(如string,int和bool)来说非常简单,但是当涉及到它时,它实际上很难处理引用类型的数组,如对象和数组.

应该找到的示例数组相等:

[1,[{c: 1},2,3],{a:'hey'}] and [{a:'hey'},1,[3,{c: 1},2]]
Run Code Online (Sandbox Code Playgroud)

检查这种类型的深度值相等不仅非常复杂,而且还要找出一种表示可能的变化的好方法.

javascript compare object

194
推荐指数
12
解决办法
13万
查看次数

如何找到哈希的键?

我知道在javascript对象中双重作为哈希,但我一直无法找到内置函数来获取密钥

var h = {a:'b',c:'d'};
Run Code Online (Sandbox Code Playgroud)

我想要类似的东西

var k = h.keys() ; // k = ['a','c'];
Run Code Online (Sandbox Code Playgroud)

自己编写一个函数来迭代项目并将键添加到我返回的数组中是很简单的,但有没有一种标准的清洁方法呢?

我一直觉得它必须是一个简单的内置功能,我错过了,但我找不到它!

javascript key object

191
推荐指数
7
解决办法
19万
查看次数

`new Object()`和object literal notation有什么区别?

这个基于构造函数的语法创建对象有什么区别:

person = new Object()
Run Code Online (Sandbox Code Playgroud)

...和这个文字语法:

person = {
    property1 : "Hello"
};
Run Code Online (Sandbox Code Playgroud)

虽然JSLint更喜欢使用对象文字表示法,但它们似乎都做同样的事情.

哪一个更好,为什么?

javascript jslint object

190
推荐指数
8
解决办法
13万
查看次数

你如何以编程方式设置属性?

假设我有一个Python对象x和一个字符串s,我怎么设置属性sx?所以:

>>> x = SomeObject()
>>> attr = 'myAttr'
>>> # magic goes here
>>> x.myAttr
'magic'
Run Code Online (Sandbox Code Playgroud)

什么是魔术?顺便说一下,这个目的是缓存呼叫x.__getattr__().

python attributes object

188
推荐指数
3
解决办法
19万
查看次数

标签 统计

object ×10

javascript ×6

python ×2

arrays ×1

attributes ×1

c# ×1

casting ×1

compare ×1

integer ×1

java ×1

jslint ×1

key ×1

pickle ×1

save ×1

serialization ×1