我正在努力解决这个问题。我知道当你知道怎么做时这很简单,但我无法理解它。
我基本上想要创建一个像这样的对象:
data = [{
a: 1
b: "test"
c: 32
}, {
a: 2
b: "test2"
c: 55
}, {
a: 3
b: "xyz"
c: 103
}]
这只是一个更大的函数的例子,所以我不想这样做,但理解tis将帮助我做更大的功能。
我会认为下面的内容会起作用,但事实并非如此。我猜它只需要一点点调整:
var data = new Object;
$('.class-name').each(function () {
var a = $(this).data('a');
var b = $(this).data('b');
var c = $(this).data('c');
data[] = {
a: a,
b: b,
c: c
}
});
我正在努力添加对象的东西,以及我在函数外声明对象的事实。
我已经尝试过data.push,但我认为我混淆了数组和对象。
感谢您的帮助。
答案 0 :(得分:1)
var data = [];
//since data is an array
//you can use it's native method `push`
//to add an object or primitive to the next/last index
data.push({
a: 1,
b: 'test',
c: 32
});
您甚至可以一次向阵列添加多个对象。
data.push({ a: 2 b: "test2" c: 55 }, { a: 3 b: "xyz" c: 103 });
或者您可以单独创建对象,然后稍后添加。
var someObj = {
a: 123,
b: 'hello',
c: 789
};
data.push(someObj);
请参阅related
答案 1 :(得分:1)
您必须将data
变量初始化为数组,然后再“推送”新闻对象:
var data = [];
$('.class-name').each(function () {
var a = $(this).data('a');
var b = $(this).data('b');
var c = $(this).data('c');
data.push({
a: a,
b: b,
c: c
});
});
答案 2 :(得分:1)
使用:
data = []
data.push({ a: 1, b: 'test', c: 52 })
或直接:
data = [{ a: 1, b: 'test', c: 52 }, { a: 2, b: 'test2', c: 53}]
答案 3 :(得分:1)
为了简单起见,请执行以下操作:
// Create an empty Array
var data = [];
$('.class-name').each(function () {
// Get the data attribute values
var a = $(this).data('a');
var b = $(this).data('b');
var c = $(this).data('c');
// Create an empty Object
var obj = {};
// Set the object key-value pairs
obj['a'] = a;
obj['b'] = b;
obj['c'] = c;
// Push the object to the 'data' array
data.push(obj);
});
// Check the data array in the console
console.log(data);
但你可以随时将其最小化:
// Create an empty Array
var data = [];
$('.class-name').each(function () {
// Get the data attribute values
var a = $(this).data('a');
var b = $(this).data('b');
var c = $(this).data('c');
// Push the object to the 'data' array
data.push({a:a, b:b, c:c});
});
// Check the data array in the console
console.log(data);
答案 4 :(得分:1)
data[] = …
这是PHP语法,而不是JavaScript。您想要使用Array push
method。使数据为array(不是通用对象):
var data = new Array;
// or simpler with an empty array literal:
var data = [];
然后
data.push({
a: a,
b: b,
c: c
});