Javascript 如何返回JSON对象属性
我想这样做:Javascript 如何返回JSON对象属性,javascript,json,Javascript,Json,我想这样做: function createParam(value, key = 'params') { return [key]: {value: JSON.stringify(value) ,name: ''} } const param1 = createParam(someVaue); const param2 = createParam(someOtherValue, someKey); const parameter = {param1, param2} 这样我就可以做这
function createParam(value, key = 'params') {
return [key]: {value: JSON.stringify(value) ,name: ''}
}
const param1 = createParam(someVaue);
const param2 = createParam(someOtherValue, someKey);
const parameter = {param1, param2}
这样我就可以做这样的事情:
function createParam(value, key = 'params') {
return [key]: {value: JSON.stringify(value) ,name: ''}
}
const param1 = createParam(someVaue);
const param2 = createParam(someOtherValue, someKey);
const parameter = {param1, param2}
如何执行类似操作?目前,我对函数createParam
有问题,因为上面的语法似乎不存在。更新01:
一些答案提出了很好的解决方案,但只是为了澄清阅读问题的其他人,参数的预期输出是:
{key1: {value:'xx', name: ''},key2: {value:'xx', name: ''},key3: {value:'xx', name: ''},...}
如果每个参数都是一个合适的对象,然后将它们全部分散到一个新对象中,则会更简单
const param1 = { params: 'someValue' };
const param2 = { [key]: 'someOtherValue' };
const parameter = {...param1, ...param2 }
// paramter = { params: 'someValue', [key]: 'someOtherValue' }
您需要仅使用参数创建临时对象,每个参数1个,然后将所有这些对象合并在一起。一种方法是使用
函数createParam(值,键='params'){
//在返回值周围添加{}以返回对象
返回{[key]:{value:JSON.stringify(value),名称:“”}
}
//创建参数
const param1=createParam(42);
console.log(param1)
const param2=createParam(123,“键”);
console.log(param2)
//使用扩展运算符合并结果对象
常量参数={…param1,…param2}
console.log(参数)
您的预期行为是不可能的。但是你可以试试下面的方法
function createParam(value, key = 'params') {
return {[key]: {value: JSON.stringify(value) ,name: ''}}
}
您可以使用ES6语法执行以下操作
const param1 = createParam(someVaue);
const param2 = createParam(someOtherValue, someKey);
const parameter = {...param1, ...param2}
或
函数createParam(值,键='params'){
返回{[key]:{value:JSON.stringify(value),名称:“”}
}
让someValue=“someValue”;
让someOtherValue=“someOtherValue”;
让someKey=“key1”;
const param1=createParam(someValue);
const param2=createParam(someOtherValue,someKey);
常量参数={…param1,…param2}
console.log(参数);
const param3=createParam(someValue);
const param4=createParam(someOtherValue,someKey);
const parameter2=Object.assign({},param3,param4);
控制台日志(参数2)代码>您可以像这样更新createParam:
function createParam(value, key = 'params') {
return {[key]: {value: JSON.stringify(value) ,name: ''}}
}
function mapProp( baseObject, customPropKey, value){
return (baseObject[customPropKey] = value)
}
现在,无论何时调用createParam函数。它将返回如下对象:
const param1 = createParam(someVaue); //{ someVaue: { value: someVaue, name: '' } }
可以将基础对象传递给函数以映射自定义属性。
像这样:
function createParam(value, key = 'params') {
return {[key]: {value: JSON.stringify(value) ,name: ''}}
}
function mapProp( baseObject, customPropKey, value){
return (baseObject[customPropKey] = value)
}
并致电:
var myObject = {a1:'a1value'};
console.log(myObject); //{a1:'a1value'}
var newObject = mapProp(myObject, 'a2', 'a2value');
console.log(newObject); //{a1:'a1value', a2:'a2Value'}
我认为最好的选择是将属性直接设置到对象中。你可以:
将对象作为参数传递
function createParam(obj, value, key = 'params') {
obj[key] = {value: JSON.stringify(value) ,name: ''};
return obj;
}
const parameter = {};
createParam(parameter, someValue);
createParam(parameter, someOtherValue, someKey);
从对象调用函数
const parameter = {};
parameter.createParam = function(value, key = 'params') {
this[key] = {value: JSON.stringify(value) ,name: ''};
return this;
}
parameter.createParam(someValue);
parameter.createParam(someOtherValue, someKey);
创建一个类
function Parameters() {
this.createParam = function(value, key = 'params') {
this[key] = {value: JSON.stringify(value) ,name: ''};
return this;
}
}
parameter = new Parameters();
parameter.createParam(someValue);
parameter.createParam(someOtherValue, someKey);
然后,您将如何处理参数
?因为我至少可以想出两种方法。您需要返回{[key]:{value:JSON.stringify(value),name:'}}
@我以特定的方式将参数发送到服务器format@AliAhmadi您需要提供一个更全面的示例。@AliAhmadi您可以在指定参数{…obj1,…obj2}之前合并这两个对象或者object.assign({},obj1,obj2)
,或者将键/值对作为数组传递并循环通过它们,构建所需的objectkey应该在方括号中,然后可以执行const pArr=[];pArr.push(参数3);pArr.push(参数4);pArr.push(创建参数(“手动值”、“键4”);设parameter3={};pArr.forEach(函数(元素){Object.assign(参数3,元素);})代码>使用此代码,您在第二个代码块中使用的:
语法是什么?在firefox中似乎不起作用