复制Javascript对象数组值

复制Javascript对象数组值,javascript,arrays,Javascript,Arrays,从下拉列表中,我从javascript对象中选择一个数组: $("#selector").change(function() { let array = []; Object.values(group[$("#selector").val()]).forEach(x => array.push(x)); console.log(`Group: ${$("#selector").val()}, Array:

从下拉列表中,我从javascript对象中选择一个数组:

$("#selector").change(function() {
    let array = [];
    Object.values(group[$("#selector").val()]).forEach(x => array.push(x));
    console.log(`Group: ${$("#selector").val()}, Array: ${array}`);
});
针对数组,例如:

let group = {
LocationA: [
{
        name: "A",
        length: 11,
        width: 9,
        height: 9
    },
    {
        name: "B",
        length: 26,
        width: 6,
        height: 20
    },
    {
        name: "C",
        length: 16,
        width: 12,
        height: 14
    }
],
locationB: [{
        name: "S-10662",
        length: 32,
        width: 18,
        height: 12
    }...
但是数组输出为[对象对象]的列表,而不是数组。我很难将值(即数组)复制到数组中。我搜索了这样一个示例,但在这里找不到。

将此行更改为:

console.log(`Group: ${$("#selector").val()}  Array: `, samplearray);
变量,您可以像这样进行控制台打印,但数组不能连接

let组={
地点A:[{
名称:“A”,
长度:11,
宽度:9,
身高:9
},
{
名称:“B”,
长度:26,
宽度:6,
身高:20
},
{
名称:“C”,
长度:16,
宽度:12,
身高:14
}
],
地点B:[{
名称:“S-10662”,
长度:32,
宽度:18,
身高:12
}]
};
$(“#选择器”).change(函数(){
让samplearray=[];
Object.values(group[$(“#选择器”).val()).forEach(x=>samplearray.push(x));
log(`Group:${$(“#选择器”).val()}数组:`,samplearray);
log(samplearray);
});

地点B
地点A

我认为您不需要forEach,因为您已经使用Object.values将值提取为数组;您可以直接将其存储到数组变量中:

    let array = Object.values(group[$("#selector").val()]);
这将为您提供一个对象数组;使用forEach时,您告诉javascript遍历这些对象中的每一个,这是不可能的。 如果目标是同时提取这些对象的值,则可以执行以下操作:

$("#selector").change(()  => {
    let array = Object.values(group[$("#selector").val()]);
    console.log(array)
    let expandedArray = [];
    array.forEach(object => {
        expandedArray = [...Object.values(object), ...expandedArray]
    });
    console.log(expandedArray)
});

添加了Princeto的解决方案@jim您遇到的主要问题是将
数组
对象
混淆。下面是一个很好的工作解决方案,但我建议大家阅读一下其中的差异,以便在将来对您有所帮助。您是对的,不需要forEach
forEach
,因为它已经存在了。因为你的观点是正确的,所以投票表决。非常好,谢谢。我为此挣扎了一段时间!!如果你觉得这对你有帮助,别忘了投票并接受。你有足够的声誉做同样的事