我有一个对象数组
var val = [
{
"color": '#ABCDEF',
"data": [
{x: 1396328400000, y: 92, num: "243", den: "10"},
{x: 1398920400000, y: 97, num: "239", den: "20"},
{x: 1425189600000, y: 91, num: "158", den: "30"}
],
"name":'X'
},
{
"color": '#FEDCBA',
"data": [
{x: 1396328400000, y: 92, num: "134", den: "10"},
{x: 1425189600000, y: 91, num: "210", den: "10"}
],
"name":'Y'
},
{
"color": '#ABCFED',
"data": [
{x: 1396328400000, y: 92, num: "110", den: "10"},
{x: 1425189600000, y: 91, num: "10", den: "10"}
],
"name":'Z'
}
];
我使用val
将temp
复制到slice(0)
并使用splice(2,2)
上的temp
进行提取,但这些值也会从原始数组中删除,我在这里失踪了什么?
temp = val.slice(0);
console.log(temp);
tempData.push(temp[0].data.splice(2, 2));
console.log(temp);
console.log(val);
答案 0 :(得分:0)
slice只能制作一份浅色副本。如果你想从temp [0] .data中提取而不修改它,你可以直接复制它:
tempData.push(temp[0].data.slice(0).splice(2, 2));
答案 1 :(得分:0)
怎么样的tempData变量.... ??如果它不是你的代码的一部分,那么你必须使用temp而不是temp
var temp = val.slice(0);
console.log(temp);
temp.push(temp[0].data.splice(2, 2));
console.log(temp);
console.log(val);