Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何返回JSON对象属性_Javascript_Json - Fatal编程技术网

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中似乎不起作用