删除 JavaScript 数组中特定字符的最佳方法是什么?
What's the best way to delete specific characters in a JavaScript array?
目前,我有一个巨大的 JavaScript 数组,其中每个元素都是这样的:
[{"open":235.86,
"high":247.13,
"low":231.5,
"close":244.1,
"volume":55025735,
"date":"2019-05-01T21:00:00.000Z"}
...
我需要删除除高价之后的所有内容。最有效的方法是什么?
我试过弹出单个元素,但我忍不住觉得好像还有更多 efficient/easier 方法可以做到这一点。
所以希望结束数组只是 [235.86]
。
下面的代码应该可以工作。它足够有效 :D
for (i in arrayName){
// Loops through array
delete arrayName[i].high
delete arrayName[i].low
delete arrayName[i].close
delete arrayName[i].volume
delete arrayName[i].date
// Deletes unwanted properties
}
console.log(arrayName)
// Print output
这应该有效:
your_array.map((item) => {
return item.high
})
您可以在这种情况下使用 reduce
。例子
var temp = [{"open":235.86, "high":247.13, "low":231.5, "close":244.1, "volume":55025735, "date":"2019-05-01T21:00:00.000Z"}];
var highValArray = temp.reduce((arr, t) => {
return arr.concat(t['high']);
}, []);
您可以在 MDN website 了解更多关于 reduce 函数的信息。
一个可能的解决方案是将数组映射到一个新数组,如下所示:
const yourArray = [
{"open":235.86, "high":247.13, "low":231.5, "close":244.1, "volume":55025735},
{"open":257.52, "high":234.53, "low":220.2, "close":274.1, "volume":23534060},
]
const mappedArray = yourArray.map(el => el.open);
// mappedArray = [235.86, 257.52]
查看映射方法的 MDN 文档,Array.prototype.map()
注意:上面的例子使用了 ECMAScript 6 箭头函数和隐式 returns。它在功能上等同于:
const yourArray = [
{"open":235.86, "high":247.13, "low":231.5, "close":244.1, "volume":55025735},
{"open":257.52, "high":234.53, "low":220.2, "close":274.1, "volume":23534060},
]
const mappedArray = yourArray.map(function(el){
return el.open
});
目前,我有一个巨大的 JavaScript 数组,其中每个元素都是这样的:
[{"open":235.86,
"high":247.13,
"low":231.5,
"close":244.1,
"volume":55025735,
"date":"2019-05-01T21:00:00.000Z"}
...
我需要删除除高价之后的所有内容。最有效的方法是什么?
我试过弹出单个元素,但我忍不住觉得好像还有更多 efficient/easier 方法可以做到这一点。
所以希望结束数组只是 [235.86]
。
下面的代码应该可以工作。它足够有效 :D
for (i in arrayName){
// Loops through array
delete arrayName[i].high
delete arrayName[i].low
delete arrayName[i].close
delete arrayName[i].volume
delete arrayName[i].date
// Deletes unwanted properties
}
console.log(arrayName)
// Print output
这应该有效:
your_array.map((item) => {
return item.high
})
您可以在这种情况下使用 reduce
。例子
var temp = [{"open":235.86, "high":247.13, "low":231.5, "close":244.1, "volume":55025735, "date":"2019-05-01T21:00:00.000Z"}];
var highValArray = temp.reduce((arr, t) => {
return arr.concat(t['high']);
}, []);
您可以在 MDN website 了解更多关于 reduce 函数的信息。
一个可能的解决方案是将数组映射到一个新数组,如下所示:
const yourArray = [
{"open":235.86, "high":247.13, "low":231.5, "close":244.1, "volume":55025735},
{"open":257.52, "high":234.53, "low":220.2, "close":274.1, "volume":23534060},
]
const mappedArray = yourArray.map(el => el.open);
// mappedArray = [235.86, 257.52]
查看映射方法的 MDN 文档,Array.prototype.map()
注意:上面的例子使用了 ECMAScript 6 箭头函数和隐式 returns。它在功能上等同于:
const yourArray = [
{"open":235.86, "high":247.13, "low":231.5, "close":244.1, "volume":55025735},
{"open":257.52, "high":234.53, "low":220.2, "close":274.1, "volume":23534060},
]
const mappedArray = yourArray.map(function(el){
return el.open
});