如何输出唯一项的数组
How to output an array of unique items?
我正在介绍一些在线 tuts,主题是仅当 obj 的某个属性是唯一时,才将对象中的元素放入数组中。 对于此示例,该属性将是"phoneNumber",该函数uniquePush()
应该起作用,因为它在网站上提供了正确的解决方案。 我的问题是输出数组。我想我不太明白返回真或返回假的东西在输出结果方面是如何工作的。我知道真假是布尔值.我相信我尝试过类似的东西
if(uniquePush(nameArr, person){
then out put the obj.name
}
但这没有用
这是图特人的例子。
var person = {
name:'bob', phoneNumber:1234,
name:'joe', phoneNumber:123,
name:'jack', phoneNumber:456,
name:'duped1', phoneNumber:2345,
name:'duped2', phoneNumber:2345
}
var nameArr =[];
function uniquePush(arr, obj) {
if(! ('phoneNumber' in obj)) {
return false;
}
var unique = true;
arr.forEach(function(element) {
if(element.phoneNumber === obj.phoneNumber) {
unique = false;
}
});
if(unique) {
arr.push(obj);
return true;
}
return false;
}
我只想有一个弹出警报框,列出唯一名称,如 [鲍勃、乔、杰克] 未被欺骗1 或被欺骗 2
我想通过做这样的事情来做到这一点
uniquePush(nameArr, person);
alert(nameArr.name);
在这种方法中,您可以通过将它们存储在数组中来跟踪phoneNumbers
numbers
如果它们尚不存在。如果数字在那里,使用 else 分支从数组中删除以前出现的相同numbers
。
var person = [
{ name: 'bob', phoneNumber: 1234 },
{ name: 'joe', phoneNumber: 123 },
{ name: 'jack', phoneNumber: 456 },
{ name: 'duped1', phoneNumber: 2345 },
{ name: 'duped2', phoneNumber: 2345 }
];
names = [];
numbers = [];
person.forEach(function(e){
if(!(numbers.indexOf(e.phoneNumber) > -1)){
numbers.push(e.phoneNumber);
names.push(e.name);
}else{
numbers.splice(numbers.indexOf(e.phoneNumber), 1)
names.splice(numbers.indexOf(e.phoneNumber), 1);
}
});
console.log(names);
更新 :
function uniquePush(arr, obj) {
if(obj.phoneNumber === 'undefined') return false;
unique = true;
arr.forEach(function(e){
if(e.phoneNumber === obj.phoneNumber){
console.log('Nah');
unique = false;
}
});
if(unique){
arr.push(obj);
console.log('Yep');
}
}
您可以测试此函数。
a = { name: "nodup", phoneNumber: 235 };
uniquePush(person,a);
console.log(person);
人最终会添加一个新对象a
因为它是唯一的。
var person = [
{ name: 'bob', phoneNumber: 1234 },
{ name: 'joe', phoneNumber: 123 },
{ name: 'jack', phoneNumber: 456 },
{ name: 'duped1', phoneNumber: 2345 },
{ name: 'duped2', phoneNumber: 2345 }
];
function uniquePush(arr, obj) {
if (!('phoneNumber' in obj)) {
return false;
}
var unique = true;
arr.forEach(function (element) {
if (element.phoneNumber === obj.phoneNumber) {
unique = false;
}
});
if (unique) {
arr.push(obj);
return true;
}
return false;
}
相关文章:
- 如何从数组中查找唯一对象
- JavaScript:从对象数组中获取唯一值及其计数
- 创建具有2个唯一数字的Javascript数组
- javascript和具有唯一密钥的es6过滤器数组
- 根据对多个数组唯一的元素创建一个新数组
- 将数组中的重复项转换为唯一项,而不删除Javascript中的任何项
- 映射对象数组,并且仅采用唯一
- Ember JS如何获取具有唯一属性值的数组
- 如何使 JSON 数组唯一
- Javascript:编写一个函数,接收一个数组,然后返回一个只有唯一数字的数组,只删除数组
- 从数组列表中返回唯一的数组
- 推送时请确保数组中的值是唯一的
- 对具有唯一值的对象键的数组进行排序
- 基于两个属性从 javascript 中的对象数组中获取唯一数组
- Javascript:如何将对象数组转换为具有排序唯一数组的对象
- 合并并返回唯一数组问题
- 日期的唯一数组
- Javascript唯一数组项
- 以最有效的方法查找唯一数组
- 在Javascript中迭代地声明唯一数组