将数组拆分为子数组并替换字符
Split array into sub arrays and replace character
我需要将数组拆分为几个子数组并替换某个字符。
首先运行一个函数来计算数组中重复项的个数。然后我用这些值和这些值的实例数构建一个新的数组。
代码: angular.forEach($scope.financial, function(data) {
counts[data] = (counts[data] || 0)+1;
})
结果:[4, {25: 4}, 5, {25: 1}, 3, {10: 1}, 4, {10: 1}]
我要找的是将数组分成几个子数组,并用逗号替换冒号。
:
[[4,25,4],[5,25,1],[3,10,1],[4,10,1]]
有什么建议吗?
这可以通过一个简单的循环来完成。但是,如果不能保证输入的格式,建议对数据的完整性进行一些检查。
function getKey(o) {
for (var prop in o) {
if (o.hasOwnProperty(prop)) {
return prop;
}
}
}
var data = [4, {25: 4}, 5, {25: 1}, 3, {10: 1}, 4, {10: 1}];
var i = 0;
var output = [];
var key;
for (i = 0; i < data.length; i += 2) {
key = getKey(data[i + 1]);
output.push([data[i], parseInt(key, 10), data[i + 1][key]]);
}
//Print the output
console.log(output);
var el = document.createElement('div');
el.innerHTML = JSON.stringify(output);
document.body.appendChild(el);
下面提到的转换函数将接受类型为[4, {25: 4}, 5, {25: 1}, 3, {10: 1}, 4, {10: 1}]
的reponseArray并转换为子数组[[4,25,4],[5,25,1],[3,10,1],[4,10,1]]
小提琴
function converter(responseArray) {
var mainArray=[], subArray;
for (var i = 0; i < responseArray.length; i++) {
if(i%2 == 0) {
subArray= [];
subArray.push(responseArray[i]);
} else {
var obj = responseArray[i];
for(var key in obj) {
subArray.push(key * 1);
subArray.push(obj[key] * 1);
}
mainArray.push(subArray);
}
}
console.log(mainArray);
return mainArray;
}
相关文章:
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- Javascript替换字节数组序列
- 如何检查和替换数组中的值
- Javascript:字符串中有效的基于数组的替换
- 用数组(javascript)中的值替换regex捕获
- 将数组存储到本地存储中,而不是替换
- 将对象值替换为外部数组中的值
- 如何在 JavaScript 中将数组中的 [ ] 替换为 var 结果
- 合并/替换Javascript数组
- 使用Javascript regex替换“index”数组字符串
- 将数组值替换为循环以创建新数组
- 无法替换Javascript中对象数组的键
- JavaScript:替换数组中的字符串
- 用字符替换将字符串之类的数组替换为数组
- 挖空 JS - 数组替换,同时保留相同的元素
- API/应用程序设计:用新数组替换非常大的数组或修改现有数组
- jQuery:用数组替换数组
- 用数组替换重复的代码,并对其进行迭代
- 如何用jQuery对象数组替换一个DOM元素?
- DOM -用节点数组替换节点(有效地)