假设我有以下内容:
var array =
[
{"name":"Joe", "age":17},
{"name":"Bob", "age":17},
{"name":"Carl", "age": 35}
]
Run Code Online (Sandbox Code Playgroud)
能够获得所有不同年龄的数组的最佳方法是什么,以便我得到一个结果数组:
[17, 35]
Run Code Online (Sandbox Code Playgroud)
有没有办法我可以选择构造数据或更好的方法,这样我就不必遍历每个数组检查"age"的值并检查另一个数组是否存在,如果没有则添加它?
如果有某种方式我可以在没有迭代的情况下拉出不同的年龄......
我希望改进的当前无效方式......如果它意味着不是"数组"是一个对象数组,而是一个带有一些唯一键(即"1,2,3")的对象的"地图"好的 我只是在寻找性能最高效的方式.
以下是我目前的做法,但对我来说,虽然迭代确实有效,但迭代看起来效率很高......
var distinct = []
for (var i = 0; i < array.length; i++)
if (array[i].age not in distinct)
distinct.push(array[i].age)
Run Code Online (Sandbox Code Playgroud) 我有一个包含对象数组的对象.
things = new Object();
things.thing = new Array();
things.thing.push({place:"here",name:"stuff"});
things.thing.push({place:"there",name:"morestuff"});
things.thing.push({place:"there",name:"morestuff"});
Run Code Online (Sandbox Code Playgroud)
我想知道从数组中删除重复对象的最佳方法是什么.所以,例如,事情会变成......
{place:"here",name:"stuff"},
{place:"there",name:"morestuff"}
Run Code Online (Sandbox Code Playgroud) 如果我有一个数组[1, 2, 3, 5, 2, 8, 9, 2],我想检查2数组中有多少个.在不使用for循环循环的情况下,在JavaScript中执行此操作的最优雅方法是什么?
我有一个如下数组,
var arr = ['ab','pq','mn','ab','mn','ab']
Run Code Online (Sandbox Code Playgroud)
预期结果
arr['ab'] = 3
arr['pq'] = 1
arr['mn'] = 2
Run Code Online (Sandbox Code Playgroud)
试过如下,
$.each(arr, function (index, value) {
if (value)
arr[value] = (resultSummary[value]) ? arr[value] + 1 : 1;
});
console.log(arr.join(','));
Run Code Online (Sandbox Code Playgroud) 我是JavaScript新手,我已经学习和练习了大约3个月,希望我能在这个主题上得到一些帮助.我正在制作扑克游戏,而我正在尝试做的是确定我是否有一对,两对,三种,四种或满屋.
例如[1, 2, 3, 4, 4, 4, 3],1中出现1次,4次出现3次,依此类推.
我怎么可能要求我的电脑告诉我一个数组元素出现多少次?
解决了,这是最终产品.
<script type="text/javascript">
var deck = [];
var cards = [];
var convertedcards = [];
var kinds = [];
var phase = 1;
var displaycard = [];
var options = 0;
var endgame = false;
// Fill Deck //
for(i = 0; i < 52; i++){
deck[deck.length] = i;
}
// Distribute Cards //
for(i = 0; i < 7; i++){
cards[cards.length] = Number(Math.floor(Math.random() * 52));
if(deck.indexOf(cards[cards.length - 1]) …Run Code Online (Sandbox Code Playgroud) 我需要编写某种循环来计算字符串中每个字母的频率.
例如:"aabsssd"
输出:a:2,b:1,s:3,d:1
还想在对象中将相同的字符映射为属性名称.有什么好主意怎么做?
我不知道该怎么做.
这是我到目前为止的地方:
var arr = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
function counter(x) {
var count=0, temp = [];
x = x.split('');
console.log(x);
for(var i=0, len = x.length; i < len; i++) {
if(x[i] == "a") {
count++;
}
}
return count;
}
var a = "aabbddd";
console.log(counter(a));
Run Code Online (Sandbox Code Playgroud) 说我有这样的数组:
[
"foo",
"bar",
"foo"
"bar",
"bar",
"bar",
"zoom"
]
Run Code Online (Sandbox Code Playgroud)
我想对它进行分组,这样我就可以得到这样的计数:
{
"foo": 2,
"bar": 4,
"zoom": 1
}
Run Code Online (Sandbox Code Playgroud)
有没有可以做到这一点的实用程序?
使用JavaScript,我试图找到一种方法来找到数组中相同数字(在本例中为1)的最长出现次数.
例如,这是一个示例数组:
[2,5,3,1,1,1,3,7,9,6,4,1,1,1,1,1,4,7,2,3,1,1,4,3]
我想编写一个返回"5"的函数,因为数字1连续出现5次.(它也连续发生3次和2次,但我发生的时间最长).
到目前为止,我写道:
function streak(arr) {
var i,
temp,
streak,
length = arr.length;
for(i=0; i<length; i++) {
if (arr[i] === 1) {
streak += 1;
} else {
temp = streak;
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我知道如果我发现一个事件,我需要某种方式知道我离开的地方,但我感觉有些卡住了.
有什么指针吗?
有人可以指导我完成这个练习吗?编写一个 JavaScript 程序来查找数组中最频繁的项。
var arr1 = [3, 'a', 'a', 'a', 2, 3, 'a', 3, 'a', 2, 4, 9, 3];
var mf = 1;
var m = 0;
var item;
for (var i = 0; i < arr1.length; i++) {
for (var j = i; j < arr1.length; j++) {
if (arr1[i] == arr1[j]) m++;
if (mf < m) {
mf = m;
item = arr1[i];
}
}
m = 0;
}
alert(item + " ( " + mf …Run Code Online (Sandbox Code Playgroud)我想知道如何从数组中删除唯一元素。例如:
var arr = [1, 2, 2, 4, 4]会回来[2, 2, 4, 4]。哪里[1, 2, 3]会返回,[]因为所有元素都是唯一的。
我相信我需要用数组中的每个其他元素检查每个元素,但我不知道如何去做。
谢谢!