我有像
这样的js对象test
我想将所有Object {id: 1, name: "Grain", Price: 26.0, DM: 2.0}
与float values
分开。任何帮助将不胜感激
答案 0 :(得分:2)
遍历对象并检查浮点值。然后分开:
14.2
请注意:
14.0
而非14
或!isNaN(n)
。n === Number(n) && n % 1 !== 0
代替14.2
。但这也会匹配整数。 (将匹配14.0
,14
和!isNaN(n) && n.toString().indexOf('.')
)14.2
。 (将匹配14.0
,14
和非$.each(..)
)SELECT product_id,
product_property_id,
SUM(CASE WHEN [type] = 1 THEN amount END) - SUM(CASE WHEN [type] = 0 THEN amount END) new_amount
FROM dbo.YourTable
WHERE product_id = 145
AND product_property_id = 4
GROUP BY product_id,
product_property_id;
遍历。答案 1 :(得分:1)
您可以使用jQuery方法$.each
遍历对象的所有字段:
var obj = { id: 1, name: "Grain", Price: 26.0, DM: 2.0 };
$.each(obj, function(i, el) {
var floatValue = parseFloat(el);
if(i != "id" && !isNaN(floatValue) && floatValue % 1 !== 0) {
console.log(floatValue);
}
});
将console.log
替换为您的代码。
答案 2 :(得分:1)
请仔细阅读此代码:
[[1, 1, 1], [2, 3, 1, 2], [1, 1, 1, 1, 10, 3]]
[[1, 4, 1], [2, 3, 1, 5], [1, 1, 1, 1, 10, 6]]
[[1, 9, 1], [2, 3, 1, 8], [1, 1, 1, 1, 10, 7]]
然后最后你的 newObj 根据你的想法得到结果......
答案 3 :(得分:0)
for
循环迭代数组。 ===
运算符检查对象是否为'number'
%1 == 0
检查数字是浮点数还是整数。答案 4 :(得分:0)
我建议使用带有浮点值的属性键的数组,如此
floatKeys = ['Price', 'DM'];
并迭代可能的数组和键。
var array = [{ id: 1, name: "Grain", Price: 26.0, DM: 2.0 }],
floatKeys = ['Price', 'DM'];
array.forEach(function (a) {
floatKeys.forEach(function (k) {
a[k] /= 2;
});
});
document.write('<pre>' + JSON.stringify(array, 0, 4) + '</pre>');
&#13;
答案 5 :(得分:0)
jQuery是你的朋友:
var obj = {id: 1, name: "Grain", Price: 26.0, DM: 2.0}
$.each(obj, function (key, value) {
if ($.isNumeric(value) && !Number.isInteger(value)) {
obj[key] /= 2;
}
});
会解释Price:&#34; 34.2&#34;虽然也是浮动..