我有一个简单的javascript代码。但它没有像我预期的那样工作。我想从javascript对象中提取数据,但是每当我执行该函数时,即使我对原始数组未执行任何操作,原始对象数组也会更改。是对象数组结构的问题吗?还是异步问题?
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<button onclick="test()"> </button>
</body>
<script type="text/javascript">
var testArray = [];
var num1 = 0;
var allorderDemo = [
{
name:'test1',
orders: [
{name: 'fanta', num:1},
{name: 'cola', num:2},
{name: 'sweet', num:1}
]
},
{
name:'test2',
orders: [
{name: 'fanta', num:1},
{name: 'cola', num:2},
{name: 'sweet', num:1}
]
},
{
name:'test3',
orders: [
{name: 'fanta', num:1},
{name: 'cola', num:2},
{name: 'ox', num:1}
]
}
];
function test(){
testArray = [];
for(var i = 0; i < allorderDemo.length; i++){
for(var j = 0; j < allorderDemo[i].orders.length; j++){
var index = testArray.findIndex(function(element) {
return (element.name == allorderDemo[i].orders[j].name);
});
console.log("index",index);
if(index > 0) testArray[index].num += allorderDemo[i].orders[j].num;
else testArray.push(allorderDemo[i].orders[j]);
}
}
console.log(allorderDemo.length);
console.log(testArray);
console.log(allorderDemo);
}
</script>
</html>
我想从allorderdemo中提取testarray。但是每当我执行测试函数时.log控制台.log说原始数组allorderdemo会发生变化,因为我不会在函数中更改它。为什么会发生此错误。请帮帮我。
慕丝7291255
隔江千里
侃侃尔雅
随时随地看视频慕课网APP
相关分类