我在添加对象" myobj"时遇到问题到数组data / data2。如你所见" myobj"一个JS对象,我想添加到数据或data2。通过点击不同按钮触发功能。
myobj的console.log向我展示了
{ array: "arr_id_1", axis: "x", acc: "", vel: "", dist: "", jerk: "" }
我收到错误data2.splice() is not a function
。
这是我需要的格式。 " MyObj中"应该被添加到我想要使用JSON.stringify
的数组中。这个JSON文字通过ajax转到python脚本。阵列"数据"我正确执行的每次点击都填满了,但没有进一步处理的格式。所以我尝试填充数组data2,因为我已经读过,我也可以使用.splice()。不幸的是,console.log(data2)显示" undefined"对于我尝试填充的每个字段,我不知道如何解决它。
我尝试在" myobj"上使用JSON.stringify
作为另一种尝试,我试图再次JSON.parse
。我尝试将括号和冒号添加到引号中但也没有成功。
我很感激任何建议或帮助。
var counterx = 0;
let data = [];
let data2 = {};
function valuesX() {
counterx++;
// does something here
let arr_id = [];
arr_id.name = 'arr_id_' + counterx;
let ind = counterx - 1;
let myobj;
function arr() {
var ind = sel.selectedIndex;
var axis = sel.options[ind].text;
arr_id.length = 0;
arr_id.push(arr_id.name, axis, btna.value, btnv.value, btns.value, btnj.value)
myobj = {
array: arr_id[0],
axis: arr_id[1],
acc: arr_id[2],
vel: arr_id[3],
dist: arr_id[4],
jerk: arr_id[5]
};
console.log(arr_id.name, arr_id)
console.log(myobj)
console.log(data.name, data)
console.log(data2.name, data2)
}
data.name = 'data';
data2.name = 'data2';
data.splice(ind, 0, arr_id)
data2.splice(ind, 0, myobj)
}
答案 0 :(得分:0)
解决方案:
我已使用Answer from JVE999, first suggestion将myobj
转换为对象,并使用.splice()
将每个新myobj
添加到数组data
。我使用了splice,因为我需要覆盖已存在的元素,同时在触发函数(.splice() reference)时保持顺序(因此indx
)。
var arr_id = [];
arr_id.name = 'arr_id_'+counterx;
var myobj;
var indx = counterx-1;
var data_new;
data.name = 'data';
function arr(){
var ind = sel.selectedIndex;
var axis = sel.options[ind].text;
arr_id.length = 0;
arr_id.push(arr_id.name, axis, btna.value, btnv.value,btns.value, btnj.value)
myobj = {
array:arr_id[0],
axis:arr_id[1],
acc:arr_id[2],
vel:arr_id[3],
dist:arr_id[4],
jerk:arr_id[5]
};
data_new = convArrToObj(myobj);
data.splice(indx, 1, data_new)
data_str = JSON.stringify(data)
console.log(data.name, data)
console.log(data_str)
}