使用随机数组创建映射 json 对象

Posted

技术标签:

【中文标题】使用随机数组创建映射 json 对象【英文标题】:Map json Object with randomise array creation 【发布时间】:2018-05-17 14:03:05 【问题描述】:

我有 JSON 对象和数组

sampleJson="id":1,"option1":"","option2":"","option3":""
sampleArray=["car","","Animals"]

我想以下列格式将 sampleArray 添加到 sampleJson

sampleJson="id":1,"option1"="car","option2":"Animals","option3":""

样本数组将像["","car",""] Or ["","animal","Car"]?一样随机化

【问题讨论】:

您希望将sampleArray 元素分配为options 的顺序是什么? 【参考方案1】:
var sampleJson="id":1,"option1":"","option2":"","option3":""
var sampleArray=["car","","Animals"];
var count = 1;
sampleArray.forEach(function(ele)
    if(ele.length)
        sampleJson['option' + count] = ele;
        count++;
    
)
console.log(sampleJson);//id: 1, option1: "car", option2: "Animals", option3: ""

【讨论】:

如果 sampleArray=["","fruits","cars"] 它显示 sampleJson="id":1,"option2":"fruits","option3":"car " 我想要它作为 sampleJson="id":1,"option1":"fruits","option2":"car","option":"" 你如何决定你想要的选项值的顺序。例如,您如何确定 option1fruitoption2car 实际上我在输入框的角度 2 中使用两种方式绑定,它们是我们提供的 3 个输入框,在这种情况下至少 1 个是强制性的......如果用户在第 2 和在这种情况下,第三个文本框我必须管理这种 json 格式......他们将是任何情况 嗨@Ash,我已根据您的要求编辑了我的答案。请检查它是否适合您。【参考方案2】:

感谢您的帮助,我找到了解决方案

var i=1;
    sampleData.forEach(element => 
      if(element.length != 0)
        sampleJson['option'+i]=element;
        i++;
      
    );

【讨论】:

【参考方案3】:
var sampleJson="id":1,"option1":"","option2":"","option3":""
var sampleArray=["car","","Animals"]
Object.keys(sampleJson).filter(function(k) 
    return k.includes('option');
).forEach(function(k,i) 
    if (sampleArray.length > i) 
        sampleJson[k] = sampleArray[i];
);
console.log(sampleJson)

希望对你有帮助!

【讨论】:

noo.. 上面的代码显示 "id":1,"option1":"","option2":"car","option3":"fruits" for sampleArray=["" ,car","fruits"] 案例...

以上是关于使用随机数组创建映射 json 对象的主要内容,如果未能解决你的问题,请参考以下文章

使用具有特定对象引用的随机数创建数组

PHP怎么随机获取数组里面的值?

选择一个随机的 json 对象

产生num个不重复的随机数组

创建数组的随机切片以分配给另一个对象数组

对象数组的构造函数中的随机数