我遇到了一些数学问题。我有这个简单的数组:
var x = [
{
'index':0,
"place": 1,
},
{
'index':1,
"place": 4,
},
{
'index':0,
"place": 9,
},
{
'index':1,
"place": 9,
},
{
'index':0,
"place": 9,
},
];
如何遍历此数组并将元素(在这种情况下称为row
)添加到数组中的每个对象?最终应该看起来像这样:
var x = [
{
'index':0,
"place": 1,
"row":"0",
},
{
'index':1,
"place": 4,
"row":"0",
},
{
'index':0,
"place": 9,
"row":"1",
},
{
'index':1,
"place": 9,
"row":"1",
},
{
'index':0,
"place": 9,
"row":"2",
},
{
'index':0,
"place": 9,
"row":"2",
},
];
谢谢您的任何建议。我需要用它来在NativeScript中创建动态网格布局。
答案 0 :(得分:6)
只需将索引除以二:
x.forEach((e, i) => e.row = ~~(i / 2));
PS: ~~
是Math.floor
的非常丑陋的缩写...
答案 1 :(得分:0)
尝试类似的方法:)
var x = [
{
'index':0,
"place": 1,
},
{
'index':1,
"place": 4,
},
{
'index':0,
"place": 9,
},
{
'index':1,
"place": 9,
},
{
'index':0,
"place": 9,
},
{
'index':0,
"place": 1,
},
{
'index':1,
"place": 4,
},
{
'index':0,
"place": 9,
},
{
'index':1,
"place": 9,
},
{
'index':0,
"place": 9,
},
];
var j = -1
x.forEach(function(e, i) {
if(i % 2 == 0) {
j++
}
e['row'] = j
})
console.log(x)