我有Geocoder.coordinates("25 Main St, Cooperstown, NY")
array
,
objects
我只获得没有var out = [{
"type": "1",
"from": "13052033555",
"to": "4444444",
"amount": "40000",
"date": 1461575799,
"status": "1"
}, {
"type": "2",
"from": "13052033555",
"to": "1111111",
"amount": "30000",
"date": 1461575884,
"status": "1"
}...
];
现在我用这个函数从这个数组中获取值, 我传递数组然后只返回没有键的值
keys
然后它返回没有这样的键的值数据,
function foo(a) {
var values = [];
for (var i = 0; i < a.length; i++) {
var obj = a[i];
var arr = Object.keys(obj).map(function(k) {
return obj[k]
});
values.push("[" + arr + "],");
}
return values.join('');
}
我的问题是如何循环使用值并仅将方法应用于每个数据数组的第5个值?
答案 0 :(得分:1)
foo
所要做的就是在fn
上致电arr[4]
,然后再继续循环播放。
arr[4] = fn(arr[4])
这当然是假设您无需出于某种原因不需要这样做。如果是这种情况,您可以像原始代码一样使用另一个for loop
,并按照上面的说明修改每个数组中的第5个元素,除非它看起来更像
for (var i = 0; i < outerArray.length; i++) {
outerArray[i][4] = fn(outerArray[i][4])
}
既然我们已经介绍了如何使用您当前的代码,我还建议您不要为任何真实的应用程序执行此操作。如果要修改特定对象属性上的数据以获取对象列表,则应使用对象属性名称(键),而不是稍后使用索引对值数组执行此操作。这可以防止由于对象没有保证订单而引起的任何混淆。以下是我将如何执行此操作的示例,假设您要修改date
:
function foo(a) {
return a.map(function(obj) {
return Object.keys(obj).map(function(k) {
return k === 'date' ? fn(obj[k]) : obj[k]
})
})
}
这样您可以定位所需的属性,但也不要修改原始对象。
注意您应该将fn
替换为所需的功能:)
修改根据您的请求,您可以通过以下方式对其进行扩展以检查其他属性名称
function foo(a) {
return a.map(function(obj) {
var values = []
Object.keys(obj).forEach(function(k) {
if (k === 'date') {
values.push(fn(obj[k]))
} else if (k !== 'type') {
values.push(obj[k])
}
})
return values
})
}
答案 1 :(得分:0)
var out = [{
"type": "1",
"from": "13052033555",
"to": "4444444",
"amount": "40000",
"date": 1461575799,
"status": "1"
}, {
"type": "2",
"from": "13052033555",
"to": "1111111",
"amount": "30000",
"date": 1461575884,
"status": "1"
}
];
function foo(a) {
var values = [];
for (var i = 0; i < a.length; i++) {
var obj = a[i];
var arr = Object.keys(obj).map(function(k) {
return obj[k]
});
values.push("[" + arr + "],");
}
return values.join('');
}
function myFn(elem){
console.log(elem);
return elem;
}
var arr = foo(out);
arr = JSON.parse("["+arr.substring(0,arr.length-1)+"]")
arr.forEach(function(elem){
return myFn(elem[4]);
});
console.log(arr);