Javascript 将双数组对象转换为单数组对象
我有一个具有以下值的对象:Javascript 将双数组对象转换为单数组对象,javascript,arrays,object,each,Javascript,Arrays,Object,Each,我有一个具有以下值的对象: "Obj": { "value1": [], "value2": [ "1", "2", "3", "4" ] } 如果我检查我的obj,我可以看到它的大小等于2。这当然有道理,因为这里有两个数组。但问题是,我需要它只有一个数组。我的意思是:我想把这两个数组转换成一个数组 已经用一些方法尝试了一段时间。他们都没有预期的行为 例如: var arr = []; arr = [sRo
"Obj": {
"value1": [],
"value2": [
"1",
"2",
"3",
"4"
]
}
如果我检查我的obj,我可以看到它的大小等于2。这当然有道理,因为这里有两个数组。但问题是,我需要它只有一个数组。我的意思是:我想把这两个数组转换成一个数组
已经用一些方法尝试了一段时间。他们都没有预期的行为
例如:
var arr = [];
arr = [sRows.value1, sRows.value2]
或:
有什么想法吗?怎么样
concat()方法用于合并两个或多个数组。这种方法
不更改现有数组,而是返回一个新数组
此函数将对象转换为单个数组:
function convertArraysToArray(obj) {
var output = [];
for (var key in obj) {
if (Array.isArray(obj[key])) {
for (var index = 0; index < obj[key].length; index++) {
output.push(obj[key][index]);
}
} else {
output.push(obj[key]);
}
}
return output;
}
函数转换器阵列阵列阵列(obj){
var输出=[];
for(obj中的var键){
if(Array.isArray(obj[key])){
对于(var index=0;index
如果你想让它成为一个对象的单个元素,你也可以很容易地实现。不确定你想如何组合你的数组(你不说),但我的玻璃球告诉我可能就是你要搜索的。总是只有两个值吗?这些值总是数组吗?您希望如何转换(value1后跟value2,反之亦然,没有重复项…)?始终是两个数组,而不是特定的顺序。是的,没有重复。在上面的示例中,您期望的
Obj
大小的正确值是多少?5.或4?不能使用concat,因为第一个数组的值是空对象。这不重要:你能澄清你的意思吗?当然。当我这样做时,结果值是:(4)[“1”,“2”,“3”,“4”]。因此,它用每个值“value1”创建4个不同的元素,并忽略“value2”。那么就不能按预期工作了。在您的示例中,value1是一个空数组。空数组没有要复制的内容,因此不会复制任何内容。这与您的期望有什么不同?(我假设你在评论中无意中写下了value2,而你的意思是value1)是的,对不起。这就是我的意思。实际问题是我首先指出的:“它返回一个数组。长度为“4”。
let new_array = sRows.value1.concat(sRows.value2);
function convertArraysToArray(obj) {
var output = [];
for (var key in obj) {
if (Array.isArray(obj[key])) {
for (var index = 0; index < obj[key].length; index++) {
output.push(obj[key][index]);
}
} else {
output.push(obj[key]);
}
}
return output;
}