这是我的对象文字:
var obj = {key1: value1, key2: value2};
如何将值为3的字段key3添加到对象中?
这是我的对象文字:
var obj = {key1: value1, key2: value2};
如何将值为3的字段key3添加到对象中?
当前回答
有两种方法可以向对象添加新的财产:
var obj = {
key1: value1,
key2: value2
};
使用点符号:
obj.key3 = "value3";
使用方括号表示法:
obj["key3"] = "value3";
当您知道属性的名称时,将使用第一种形式。当动态确定属性的名称时,使用第二种形式。如本例所示:
var getProperty = function (propertyName) {
return obj[propertyName];
};
getProperty("key1");
getProperty("key2");
getProperty("key3");
一个真正的JavaScript数组可以使用以下任一方法构建:
数组文字表示法:
var arr = [];
Array构造函数表示法:
var arr = new Array();
其他回答
我知道这个问题已经有了一个公认的答案,但我想我应该在某个地方记录我的想法。请[人们]自由地戳破这个想法,因为我不确定这是否是最好的解决方案。。。但我几分钟前刚刚把这件事放在一起:
Object.prototype.push = function( key, value ){
this[ key ] = value;
return this;
}
您可以这样使用它:
var obj = {key1: value1, key2: value2};
obj.push( "key3", "value3" );
由于原型函数正在返回此值,因此您可以继续将.push链接到obj变量的末尾:obj.push(…).push(……).press(…);
另一个特性是可以将数组或另一个对象作为push函数参数中的值传递。请参见我的小提琴,以获得一个有效的示例:http://jsfiddle.net/7tEme/
为了给对象添加键值对,以便for In与该元素一起使用,请首先执行以下操作:
var nwrow = {'newkey': 'value' };
for(var column in row){
nwrow[column] = row[column];
}
row = nwrow;
根据ECMA-262中定义的属性访问器(http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf,P67),有两种方法可以将财产添加到现有对象。通过这两种方式,Javascript引擎将对它们一视同仁。
第一种方法是使用点符号:
obj.key3 = value3;
但是这样,您应该在点符号后使用IdentifierName。
第二种方法是使用括号表示法:
obj["key3"] = value3;
以及另一种形式:
var key3 = "key3";
obj[key3] = value3;
这样,您可以在括号符号中使用表达式(包括标识符名称)。
实现这一目标的最佳方式如下:
function getKey(key) {
return `${key}`;
}
var obj = {key1: "value1", key2: "value2", [getKey('key3')]: "value3"};
//console.log(obj);
有两种方法可以向对象添加新的财产:
var obj = {
key1: value1,
key2: value2
};
使用点符号:
obj.key3 = "value3";
使用方括号表示法:
obj["key3"] = "value3";
当您知道属性的名称时,将使用第一种形式。当动态确定属性的名称时,使用第二种形式。如本例所示:
var getProperty = function (propertyName) {
return obj[propertyName];
};
getProperty("key1");
getProperty("key2");
getProperty("key3");
一个真正的JavaScript数组可以使用以下任一方法构建:
数组文字表示法:
var arr = [];
Array构造函数表示法:
var arr = new Array();