如何解决如何在JavaScript中放置另一个JSON数据
我正在构建 laravel 刀片php文件。 我需要为日历计划制作 json数据。 但是我不能将每个数据放入json。 此结果来自所有相同的记录。
代码如下...
@foreach($room_rates as $key=>$room_rate)
var roomRate_object = {
id: "{{$room_rate->sup_hotel_room_rates_list_id}}",roomRate_name: "{{$room_rate->room->room_name}}",roomRate_nameCode: "{{$room_rate->sup_room_details_id}}",roomRate_type: "2",roomRate_value: "3",start: "{{$room_rate->from_date}}",end: "{{$room_rate->to_date}}",status: "{{$room_rate->status}}",allotmant: "function select(arr,obj) {
return arr.reduce(function (acc,key) {
if (key in obj) acc[key] = obj[key];
return acc;
},{});
}
const arr = ['a','c','e'];
const obj = { a: 1,b: 2,c: 3,d: 4 };
let output = select(arr,obj);
console.log(output); // --> { a: 1,c: 3 }
",night_stayval: "{{$room_rate->min_night_stay}}",};
console.log("kkk roomRate_object")
console.log(roomRate_object)
roomRate_object.id = roomRate_object.id + "1";
roomRate_object.roomRate_type = "1";
roomRate_object.roomRate_value = "{{$room_rate->adult_rate}}";
realize_schedule.push(roomRate_object);
roomRate_object.id = roomRate_object.id + "2";
roomRate_object.roomRate_type = "2";
roomRate_object.roomRate_value = "{{$room_rate->double_rate}}";
realize_schedule.push(roomRate_object);
roomRate_object.id = roomRate_object.id + "3";
roomRate_object.roomRate_type = "3";
roomRate_object.roomRate_value = "{{$room_rate->triple_rate}}";
realize_schedule.push(roomRate_object);
roomRate_object.id = roomRate_object.id + "4";
roomRate_object.roomRate_type = "4";
roomRate_object.roomRate_value = "{{$room_rate->quad_rate}}";
realize_schedule.push(roomRate_object);
roomRate_object.id = roomRate_object.id + "5";
roomRate_object.roomRate_type = "5";
roomRate_object.roomRate_value = "{{$room_rate->child_rate}}";
realize_schedule.push(roomRate_object);
@endforeach
结果是这样的。 enter image description here
那很奇怪。 请帮助我。
我对此非常担心。 谢谢您的时间。
解决方法
我认为您对参考的更改有些困惑。在javascript中,当创建对象时,如果您尝试修改该对象的值,则它将更改内存中的值。例子
var obj = {name:'test'};
var b = obj;
b.name = 'test2';
如果您对输出进行控制台,则obj和b都将具有test2,因为javascript将更改内存中的值,如var b = obj上的行一样,它只是使b指向obj使用的同一内存。 / p>
为逃避此技术,我们根据需要使用深克隆或浅克隆。
您有很多选择,一个可以只是创建多个具有不同名称的对象。
用于制作新对象
function getObj($room_rate,id,type,value){
return {
id: "{{$room_rate->sup_hotel_room_rates_list_id}}"+ id,roomRate_name: "{{$room_rate->room->room_name}}",roomRate_nameCode: "{{$room_rate->sup_room_details_id}}",roomRate_type: type,roomRate_value: value,start: "{{$room_rate->from_date}}",end: "{{$room_rate->to_date}}",status: "{{$room_rate->status}}",allotmant: "realize_schedule.push(getObj($room_rate,"1","{{$room_rate->adult_rate}}"));
",night_stayval: "{{$room_rate->min_night_stay}}",}
}
创建上述功能
并称呼它
\pause
以上片段仅是一个示例,仅用于说明您如何解决问题的想法
,您必须为此使用每个对象。
var roomRate_object = {
id: "{{$room_rate->sup_hotel_room_rates_list_id.'1'}}",roomRate_type: "1",roomRate_value: "{{$room_rate->adult_rate}}",allotmant: "/p:PublishUrl="C:\Apps\"
",};
realize_schedule.push(roomRate_object);
var roomRate_object = {
id: "{{$room_rate->sup_hotel_room_rates_list_id.'2'}}",roomRate_type: "2",roomRate_value: "{{$room_rate->double_rate}}",allotmant: "/p:PublishUrl="C:\\Apps\\"
",};
realize_schedule.push(roomRate_object);
var roomRate_object = {
id: "{{$room_rate->sup_hotel_room_rates_list_id.'3'}}",roomRate_type: "3",roomRate_value: "{{$room_rate->triple_rate}}",allotmant: "is_writable($directory_path)
",};
realize_schedule.push(roomRate_object);
,
您必须使用另一个对象将另一个数据放入json。 因此,请执行以下代码。 我为你做的。
@foreach($room_rates as $key=>$room_rate)
@for ($i = 1; $i <= 5; $i++)
var roomRate_object = {
id: "{{$room_rate->sup_hotel_room_rates_list_id}}",roomRate_type: "{{$i}}",roomRate_value: "3",allotmant: "=IF(AND(M2<=TODAY();L2="");"ERROR";"OK")
",};
@switch($i)
@case(1)
roomRate_object.roomRate_value = "{{$room_rate->adult_rate}}";
@break
@case(2)
roomRate_object.roomRate_value = "{{$room_rate->double_rate}}";
@break
@case(3)
roomRate_object.roomRate_value = "{{$room_rate->triple_rate}}";
@break
@case(4)
roomRate_object.roomRate_value = "{{$room_rate->quad_rate}}";
@break
@case(5)
roomRate_object.roomRate_value = "{{$room_rate->child_rate}}";
@break
@default
<span>Something went wrong,please try again</span>
@endswitch
realize_schedule.push(roomRate_object);
@endfor
console.log("kkk roomRate_object")
console.log(roomRate_object)
@endforeach
我用另一个对象输入json数据。
如果结果不正确,请告诉我。 我会花我的黄金时间为您服务。 真幸运。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。