有许多sms发送服务提供商,所有这些服务都有不同的参数名称。我不知道哪家公司在使用哪一家网络服务提供商。如果我在soap请求期间请求用户请求的参数,是否可以将这些参数定义为对象键?
例如:
第一个用户请求参数: companyName、msgBody、收件人、
另一个用户请求参数: id、msgText、numbers、channelCode、
如果我们已经将这个数组定义为函数参数,它将发送sms请求。
我想为Soap主体创建对象。
第一个用户的结果: obj={companyName:'ASDDASD',msgBody:'Hello',收件人:‘0264344534’}
另一个用户的结果: obj ={id:21,msgText:‘嗨,数字:54564234,信道代码:1}
注意: obj值是随机写入的。
发布于 2020-06-10 11:46:34
使用括号引用属性名称:obj['propname']
如果要为对象文本中的键名使用变量,可以使用ES2015计算的属性名:{ [keyname]: 'value' }。
keys1 = ['companyName', 'msgBody','recipients']
vals1 = [1, 2, 3]
keys2 = ['id','msgText','numbers','channelCode']
const obj1 = {}, obj2 = {}
keys1.forEach((key,i) => obj1[key]=vals1[i])
keys2.forEach(key => obj2[key]=key+'value')
console.log(JSON.stringify(obj1), JSON.stringify(obj2))
console.log(JSON.stringify(
{
[keys1[0]]: 'value'
}
))
发布于 2020-06-10 12:11:21
你需要这样的功能吗?假设参数是字符串('a','b',而不是a,b),并且对象是javascript对象的数组。
/* function projectObjects
@params: an array of string parameters
@objects: an array of objects with these parameters as properties
Projects the objects on the parameter list and returns an array of objects with all and only params as properties */
function projectObjects(params,objects) {
let projectOne = function(o) {
let result = {};
params.forEach(
(p) => {
// check the behaviour when o[p] is undefined
result[p] = o[p];
}
)
return result;
}
results = objects.map(projectOne);
return results;
}
console.log(projectObjects(['roses'],[{'roses':1,'violets':2},{'roses':3,'begonias':22},{'daisies':0}]));
https://stackoverflow.com/questions/62302517
复制相似问题