首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以将数组中的字符串表达式定义为对象中的键?

是否可以将数组中的字符串表达式定义为对象中的键?
EN

Stack Overflow用户
提问于 2020-06-10 11:32:03
回答 2查看 45关注 0票数 0

有许多sms发送服务提供商,所有这些服务都有不同的参数名称。我不知道哪家公司在使用哪一家网络服务提供商。如果我在soap请求期间请求用户请求的参数,是否可以将这些参数定义为对象键?

例如:

第一个用户请求参数: companyName、msgBody、收件人、

另一个用户请求参数: id、msgText、numbers、channelCode、

如果我们已经将这个数组定义为函数参数,它将发送sms请求。

我想为Soap主体创建对象。

第一个用户的结果: obj={companyName:'ASDDASD',msgBody:'Hello',收件人:‘0264344534’}

另一个用户的结果: obj ={id:21,msgText:‘嗨,数字:54564234,信道代码:1}

注意: obj值​​是随机写入的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-10 11:46:34

使用括号引用属性名称:obj['propname']

如果要为对象文本中的键名使用变量,可以使用ES2015计算的属性名{ [keyname]: 'value' }

代码语言:javascript
复制
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'
}
))

票数 2
EN

Stack Overflow用户

发布于 2020-06-10 12:11:21

你需要这样的功能吗?假设参数是字符串('a','b',而不是a,b),并且对象是javascript对象的数组。

代码语言: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}]));

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62302517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档