Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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 如何将对象的每个值放入数组中_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript 如何将对象的每个值放入数组中

Javascript 如何将对象的每个值放入数组中,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有两个目标: a = {A: 1, B: 2}; a = {C: 3, D: 4}; 我需要将对象的属性值放入一个数组中。所以,我通过迭代每个对象来实现这一点,但接下来,将其推入一个数组将返回两个分开的 $.each(a, function(_key, _val) { var arr = []; arr.push(_val); console.log(arr); }); 如何做到这一点?可能吗? 我需要这个:arr=[1,2,3,4]您每次都在初始化arr。试试这个

我有两个目标:

a = {A: 1, B: 2};
a = {C: 3, D: 4};
我需要将对象的属性值放入一个数组中。所以,我通过迭代每个对象来实现这一点,但接下来,将其推入一个数组将返回两个分开的

$.each(a, function(_key, _val) {
    var arr = [];
    arr.push(_val);
    console.log(arr);
});
如何做到这一点?可能吗?
我需要这个:
arr=[1,2,3,4]

您每次都在初始化arr。试试这个:

var arr = [];
$.each(a, function(_key, _val) {
    arr.push(_val);
    console.log(arr);
});
这是一把小提琴:

你也可以尝试使用.concat。以下是W3学校的一个例子:

var hege = ["Cecilie", "Lone"];
var stale = ["Emil", "Tobias", "Linus"];
var children = hege.concat(stale);


这就是您要找的吗?

不要在
$中初始化数组。每个
函数。它将在每次$时分配新数组。每个函数调用都以
arr
变量中的最后一个数组元素结束

a={
答:1,,
B:2
};
b={
C:3,
D:4
};
var-arr=[];
功能推送阵列(a){
$.each(a,函数(_key,_val){
arr.push(_val);
});
}
pushToArray(a);
普什托雷(b);
控制台日志(arr)

下面概述的方法首先创建两个单独的数组,一个来自
a
,一个来自
b
,然后将它们连接在一起(借助jQuery方法的一点帮助)


您可以通过使用Object.assign简单地实现这一点

    var a = {A: 1, B: 2};
    var b = {C: 3, D: 4};
    var copy = Object.assign(a, b);
    var result =[];
    for(var i in copy){
       result.push(copy[i]);
    }
console.log(result);

谢谢。

初始化
var arr=[]
在每个对象之外,两个对象的变量名都是相同的,即
a
,这样
a
将只保存
{C:3,D:4}
。这就是问题所在,这是相同的名称在这种情况下,这些数组具有相同的“名称”,如果您只是将新值重新分配给“a”变量,那么它仍然可以工作,只要:1)您至少在每个外部定义了arr。您一直在重新初始化它;2) 在重新分配之前,请执行每个$。这就是你所需要的吗?不鼓励只使用代码的答案。请补充一点解释。另外,您的解决方案没有提供问题的确切答案,因为生成的数组排序不正确。最后,变量
数组
不存在。它应该是
finalarray=array2.concat(array1)
a = {A: 1, B: 2};
b = {C: 3, D: 4};

var arrayFromA = $.map(a, function(value, index) {
    return [value];
});

var arrayFromB = $.map(b, function(value, index) {
    return [value];
});

finalArray = arrayFromB.concat(arrayFromA);
    var a = {A: 1, B: 2};
    var b = {C: 3, D: 4};
    var copy = Object.assign(a, b);
    var result =[];
    for(var i in copy){
       result.push(copy[i]);
    }
console.log(result);